内置函数

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

 

posted @ 2018-10-25 17:10  萤huo虫  阅读(107)  评论(0编辑  收藏  举报