类的内置方法

类的内置方法

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

原文地址:https://www.cnblogs.com/achai222/p/12709507.html