类的内置方法 类的内置方法 1 类内置方法的定义 2 类内置方法的作用 3 类部分内置函数
1 类内置方法的定义
定义在类内部,以双下划线开头并以双下划线结尾的方法
特点:会在某种情况下自动触发执行
如__init__会在调用类,产生对象时自动执行
2 类内置方法的作用
定制化我们的类or对象
3 类部分内置函数
3.1 __str__
__str__在打印对象时会自动触发,然后将返回值(必须是字符串类型)当做本次打印的结果输出
class People:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
print('运行了...') # 不应有return以外的代码,此处为了标识该函数执行
return "<%s:%s>" %(self.name,self.age)
obj1=int(10)
print(obj1) # 按之前学的内容,如果print(obj) 原本应该输出obj的内存地址
# 结果:10 ,是因为__str__
obj = People('辣白菜同学', 18)
# 按之前学的内容,如果print(obj) 应该输出一个内存地址
print(obj) # 相当于print(obj.__str__())
# 运行了...
# <辣白菜同学:18>
3.2 __del__
__del__会在清理对象时触发,会先执行该方法
一般用于发起系统调用,告诉操作系统回收相关的操作系统内存空间
class People:
def __init__(self, name, age):
self.name = name
self.age = age
self.x = open('a.txt',mode='w')
# self.x = 占据的是操作系统资源
def __del__(self):
print('run...')
# 发起系统调用,告诉操作系统回收相关的系统资源
self.x.close()
obj = People('辣白菜同学', 18)
del obj # obj.__del__() run...
# 如果不执行del obj也会在程序结束时自动进行del操作,执行__del__代码
print('============>')
# 如果不执行del obj,会输出
# ============>
# run...
3.3 其余部分
参考https://www.cnblogs.com/linhaifeng/articles/6204014.html#_label3