列举Python面向对象中带双下划线的特殊方法

发布时间:2022-04-18 09:44:51 人气:85 作者:多测师

  __new__:生成实例

  __init__:生成实例的属性

  __call__:实例对象加( )会执行def __call__:... 方法里边的内容。

  __del__:析构方法,当对象在内存中被释放时,自动触发执行。如当 del obj 或者应用程序运行完毕时,执行该方法里边的内容。

  __enter__和__exit__:出现with语句,对象的__enter__被触发,有返回值则赋值给as声明的变量;with中代码块执行完毕时执行__exit__里边的内容。

  __module__:表示当前操作的对象在那个模块 obj.__module__

  __class__ :表示当前操作的对象的类是什么 obj.__class__

  __doc__:类的描述信息,该描述信息无法被继承

  __str__:改变对象的字符串显示 print函数 --->obj.__str__()

  __repr__:改变对象的字符串显示 交互式解释器 --->obj.__repr__()

  __format__:自定制格式化字符串

列举Python面向对象中带双下划线的特殊方法

  __slots__:一个类变量 用来限制实例可以添加的属性的数量和类型

  __setitem__,__getitem,__delitem__:

  class Foo:

  def __init__(self,name):

  self.name=name

  def __getitem__(self, item):

  print(self.__dict__[item])

  def __setitem__(self, key, value):

  self.__dict__[key]=value

  def __delitem__(self, key):

  print('del obj[key]时,我执行')

  self.__dict__.pop(key)

  def __delattr__(self, item):

  print('del obj.key时,我执行')

  self.__dict__.pop(item)

  f1=Foo('sb')

  f1['age']=18

  f1['age1']=19

  del f1.age1

  del f1['age']

  f1['name']='alex'

  print(f1.__dict__)

  __get__():调用一个属性时,触发

  __set__():为一个属性赋值时,触发

  __delete__():采用del删除属性时,触发

  __setattr__,__delattr__,__getattr__ :

  以上内容为大家列举了Python面向对象中带双下划线的特殊方法,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线