isinstance() 函数 :用来判断一个对象是否是一个已知的类型。类似type()
isinstance() 与 type() 区别:
type() 不会认为子类是一种父类类型,不考虑继承关系。 isinstance() 会认为子类是一种父类类型,考虑继承关系。 如果要判断两个类型是否相同推荐使用 isinstance()。
issubcclass() 函数: 用于判断参数class 是否是类型参数classinfo 的子类。
语法格式:
issubclass(class, classinfo)
class Foo:
pass
class Bar(Foo):
pass
print(issubclass(Bar,Foo)) #返回Ture
__str__:会在对象被打印时自动触发,然后将返回值返回给print 功能进行打印:
class People:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return '<%s:%s>' %(self.name,self.age)
peo=People('egon',18)
print(peo) #print(peo.__str__())
l=list([1,2,3])
print(l)
__del__:会在对象被删除时自动触发执行,用来在对象被删除前回收系统资源。
class Foo:
def __del__(self):
print('===>')
obj=Foo()
print('其他代码...')
结果:
其他代码...
===>
class Foo:
def __del__(self):
print('===>')
obj=Foo()
del obj
print('其他代码...')
结果:
===>
其他代码...
PS:__del__使用场景:
class Bar:
def __init__(self,x,y,filepath):
self.x=x
self.y=y
self.f=open(filepath,'r',encoding='utf-8')
def __del__(self):
# 写回收系统资源相关的代码
self.f.close()
obj=Bar(10,20)
del obj