Python类的常用特殊方法

Python类的常用特殊方法

      • 1、__str__
      • 2、__repr__
      • 3、attr方法
      • 4、attr内置方法
      • 5、__init__
      • 6、__new__
      • 7、__call__
      • 8、内置方法与对应操作

1、str


__str__方法用于str()函数转换中,默认使用print()方法打印一个对象时,就是对它的调用,我们可以重写这个函数还实现自定义类向字符串的转换

2、repr


repr()函数调用对象中的__repr__()方法,返回一个Python表达式,通常可以在eval()中运行它

3、attr方法


Python在object基类中提供了3个与属性操作相关的方法:

  • __delattr__:用于del语句,删除类或者对象的某个属性
  • __setattr__:用于动态绑定属性
  • __getattribute__:在获取类属性时调用,无论属性是否存在

4、attr内置方法


Python提供了三个内置属性方法getattr()、setattr()和hasattr(),分别用于获取、设置和判定对象的属性

既然我们已经可以通过对象名直接访问它们,为何还要使用这些函数呢?通过它们我们可以对任意一个我们不熟悉的对象进行尝试性访问,而不会导致程序出错

getattr()方法最大的用途在于如果对象没有相应属性,可以不报错AttributeError,可以为它指定一个默认值

5、init


类的构造方法

6、new


控制创建类的实例

7、call


__call__具有非常特殊的功能,可以将一个对象名函数化。实现了__call__()函数的类,其实例就是可调用的(Callable)。可以像使用一个函数一样调用它

装饰器类就是基于__call__()方法来实现的。__call__()只能通过位置参数来传递可变参数,不支持关键字参数,除非函数明确定义形参

可以使用callable()方法来判断一个对象是否可被调用,也即对象能否使用()括号的方法调用

参考文档:https://pythonhowto.readthedocs.io/zh-cn/latest/object.html#id15

8、内置方法与对应操作


包含算术运算、比较运算、赋值运算、位运算、逻辑运算、成员运算、身份运算、其他

参考文档:https://pythonhowto.readthedocs.io/zh-cn/latest/object.html#id19

你可能感兴趣的:(#,Python,python,开发语言)