1. 主页
  2. Python基础到高级
  3. 魔术方法
  4. 魔术方法介绍

魔术方法介绍

魔术方法

魔术方法,也有人叫这种方法叫做专有方法,是类或者实例独有的方法或者属性

通过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
  • 可视化
  • 反射
  • 上下文管理
  • 大小比较
  • 描述器
  • 还有一些杂项

我们要如何帮助您?

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注