魔术方法
魔术方法,也有人叫这种方法叫做专有方法,是类或者实例独有的方法或者属性
通过dir可以获得类或者实例的公有方法
In [1]: class A:
...: pass
...:
In [2]: dir(A)
Out[2]:
['__class__',
'__delattr__',
'__dict__',
'__dir__',
'__doc__',
'__eq__',
'__format__',
'__ge__',
'__getattribute__',
'__gt__',
'__hash__',
'__init__',
'__init_subclass__',
'__le__',
'__lt__',
'__module__',
'__ne__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__']
介绍一些常用的和必须要知道的魔术方法
In [7]: A.__name__ # 获取类的名称,实例是没有name属性的
Out[7]: 'A'
In [9]: A.__module__ # 模块的名称
Out[9]: '__main__'
In [10]: A.__doc__ # 文档字符串,多用于帮助文档
In [11]: A.__class__ # type类型的对象
Out[11]: type
In [13]: a.__class__.__name__ # 通过实例获取类名
Out[13]: 'A'
In [14]: a.__dict__ # 实例所有的属性,都保存在这里
Out[14]: {}
In [16]: a.__dir__() # 获取实例的公有成员
Out[16]:
['__module__',
'__dict__',
'__weakref__',
...
将这些成员分类
- 创建和销毁
- 运算符重载
- bash
- bool
- 可视化
- 反射
- 上下文管理
- 大小比较
- 描述器
- 还有一些杂项