python--类常用的BIF函数(二十五)

python--类常用的BIF函数(二十五)

# 类的常用BIF方法
# issubclass(子类,父类) 判断一个类是不是另一个类的子类
class A:
    pass
class B(A):
    pass
print(issubclass(B,A))  #True
print(issubclass(B,object))  #True

'''
语法:isinstance(object,type)

作用:来判断一个对象是否是一个已知的类型。 
其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or flase)。
若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。
'''
class A:
    pass
class B(A):
    pass
class C():
    pass

b = B()
print(isinstance(b,B))  #True
print(isinstance(b,A))  #True
print(isinstance(b,C))  #False

'''
hasattr(object, name)
判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。
需要注意的是name要用括号括起来

getattr(object, name[,default])
获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。
需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,
可以在后面添加一对括号。

setattr(object, name, values)
给对象的属性赋值,若属性不存在,先创建再赋值。

delattr	delattr(object, name)	删除属性。	属性存在则无返回,否则报 AttributeError。
'''

# hasattr(object, name)
class D:
    num = 0
    def fum(self,x):
        self.num = x
d = D()
print(hasattr(d,'fum')) #True
print(hasattr(d,'num')) #True

# getattr()
print(getattr(d,'fum'))
print(getattr(d,'y','d对象访问的y不存在'))

# setattr()
print(setattr(d,'y','y的值'))
print(getattr(d,'y'))  #y的值

# delattr()
print(delattr(d,'y'))  #删除了y的属性

# property属性简化get和set方法
class C:
    def __init__(self,size=10):
        self.size = size
    def getSize(self):
        return self.size
    def setSize(self,value):
        self.size = value
    def delSize(self):
        self.size
    x = property(getSize,setSize,delSize)

c = C()
print(c.getSize()) #通过对象调用getSize方法获取x的值
print(c.x)  #使用property后,对象可以直接调用property调用x的值
c.x = 30    #使用property后,对象可以直接调用property设置x的值
print(c.x)


你可能感兴趣的:(python--类常用的BIF函数(二十五))