python之魔法属性

  1. __doc__
class Foo:
    """ 描述类信息,这是用于看片的神奇 """
    def func(self):
        pass

print(Foo.__doc__)
  • 类的描述信息
  1. __module__ 和 __class__
  • __module__表示当前操作的对象在那个模块
  • __class__表示当前操作的对象的类是什么
from test import Person

obj = Person()
print(obj.__module__)  # 输出 test 即:输出模块
print(obj.__class__)  # 输出 test.Person 即:输出类
  1. __init__
  • 初始化方法,通过类创建对象时,自动触发执行
  1. __del__
  • 当有变量保存一个对象的引用时,此对象的引用计数就会+1
  • 当使用del()删除变量指向的对象时,则会减少对象的引用计数。如果对象的引用计数不为1,那么会让这个对象的引用计数减1,当对象的引用计数为0的时候,则对象才会被真正删除(内存被回收)
  1. __call__
  • 对象后面加括号,触发执行。
  1. __dict__
  • 类或对象中的所有属性
  1. __str__
  • 如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值。
  1. __getitem__、__setitem__、__delitem__
  • 用于索引操作,如字典。以上分别表示获取、设置、删除数据
result = obj['k1']      # 自动触发执行 __getitem__
obj['k2'] = 'laowang'   # 自动触发执行 __setitem__
del obj['k1']           # 自动触发执行 __delitem__
  1. __getslice__、__setslice__、__delslice__
  • 该三个方法用于分片操作,如:列表
obj[-1:1]                   # 自动触发执行 __getslice__
obj[0:1] = [11,22,33,44]    # 自动触发执行 __setslice__
del obj[0:2]                # 自动触发执行 __delslice__

猜你喜欢

转载自blog.csdn.net/s201314yh/article/details/80034684