外观
Object类常用函数
__new__(cls, *args, **kwargs): 创建对象时自动调用的函数,主要作用是创建对象,给该对象分配空间,方便之后的操作。该函数会返回创建出来的对象实体,一旦正常的返回实体后,会调用初始化函数。__init__(self): 初始化函数(构造函数),作用是给当前对象创建各类变量,并给变量赋初值,一般用于对象的初始设置,该函数没有返回值。__str__(self): 对象描述函数,作用是返回当前对象的字符串类型的信息描述,一般用于对象的直接输出显示。__del__(self): 删除该对象时会自动调用,一般用于工具型对象的资源回收。
例:
class Class1(object):
def __init__(self):
print('初始化函数,对象创建成功后自动调用,一般用于对象属性的赋值')
self.data = 10
def __new__(cls, *args, **kwargs):
print('创建对象时有自动调用的函数,如果当前函数没有返回对象,则不会再执行初始化函数了')
return super().__new__(cls)
def __str__(self):
print('调用对象描述方法,在需要自动转换为字符串时会自动调用此方法')
return 'self.data = %s' % self.data
def __del__(self):
print('删除该对象时会自动调用该函数,一般用于工具类释放资源')
class1 = Class1()
print(class1)
del class1运行结果:
创建对象时有自动调用的函数,如果当前函数没有返回对象,则不会再执行初始化函数了
初始化函数,对象创建成功后自动调用,一般用于对象属性的赋值
调用对象描述方法,在需要自动转换为字符串时会自动调用此方法
self.data = 10
删除该对象时会自动调用该函数,一般用于工具类释放资源__repr__(): 输出对象的名称和内存地址。__dir__(): 输出该对象的属性。__sizeof__(): 输出对象的大小。__module__: 类定义所在的模块。类的全名是__main__.className,如果类位于一个导入模块mymod中,那么className.__module__等于mymod。
例:
object1 = object()
print(object1.__repr__())
print(object1.__dir__())
print(object1.__sizeof__())
print(object1.__module__)
print(dir(object1))运行结果:
<object object at 0x000001CB01E5FC30>
['__new__', '__repr__', '__hash__', '__str__', '__getattribute__', '__setattr__', '__delattr__', '__lt__', '__le__', '__eq__', '__ne__', '__gt__', '__ge__', '__init__', '__reduce_ex__', '__reduce__', '__subclasshook__', '__init_subclass__', '__format__', '__sizeof__', '__dir__', '__class__', '__doc__']
16
['__class__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__']