(11)类的内置函数

内置方法:__str__(该方法必须返回字符串类型),在对像被打印时自动触发,然后将该方法的返回值当做打印结果输出)

class People:
def __init__(self,name,age):
self.name=name
self.age=age

def __str__(self): #绑定给对象的方法
return '<%s:%s>' %(self.name,self.age) #这个方法必须返回一个字符串类型的值,格式自定义一不限

obj=People('egon',18)
print(obj) # 底层原理就是print(obj.__str__())
PS:打印对象时候就自动触发了__str__这个方法

内置方法:__del__(会在对象被删除时自动触发,我们可以在__del__内做一些回收系统资源的事)

class Foo:
def __init__(self,x,y,filepath):
self.x=x
self.y=y
self.f=open(filepath,mode='rt',encoding='utf-8')

def __del__(self):#这个方法就是对象被删之前一定会触发这个程序下面的代码
# 回收系统资源
self.f.close()

obj=Foo(10,20,'settings.py')
del obj # 删除对象,底层原理就是obj.__del__()
print('========================>')

isinstance(obj,cls)检查obj(一个实例)是否是类 cls 的对象

class Foo(object):
    pass  
obj = Foo()  
isinstance(obj, Foo)
PS:判断一个值数据类型的时候推荐用这个,type不推荐使用

issubclass(sub, super)检查sub类是否是 super 类的派生类(其实就是检查一个类是否是一个类的子类)

class Foo(object):
    pass  
class Bar(Foo):
    pass  
issubclass(Bar, Foo)

原文地址:https://www.cnblogs.com/shizhengquan/p/10127783.html