类和对象的一些BIF

issubclass #用于判断自己的子类
issubclass(A,B) #A是不是B的子类,是返回True 否则 False 自身也属于自己的子类
isinstance(object,classinfo) #用于检查一个实例对象是否属于一个类  classinfo 可以传入一个元组

class A(object):
  pass

class B(A):
  pass
class C(object):
  pass

a=A()
b=B()
isinstance(a,A) -->True
isinstance(a,B) -->False
isinstance(b,A) -->True
isinstance(b,B) -->True
isinstance(b,(C,B)) -->True #当传入一个元组时,只要有一个为真,返回结果都是True
hasattr(object,name) #attr=attribute:属性 用于测试一个对象里面是否有指定的属性  

class D(object):
    def __init__(self,x=0):
        self.x=x
        
d=D()
hasattr(d,'x')-->True #x传入的必须是一个字符串不然会输出异常
hasattr(d,x)
Traceback (most recent call last):
  File "<input>", line 1, in <module>
NameError: name 'x' is not defined
getattr(object,name[,default]) #用于返回一些指定的属性值

getattr(d,'x')
0
getattr(d,'y')
Traceback (most recent call last):
  File "<input>", line 1, in <module>
AttributeError: 'D' object has no attribute 'y'
getattr(d,'y','您所访问的属性值不存在。。。')  #default 自定义返回信息
'您所访问的属性值不存在。。。'
setattr(object,name,value]) #与getattr 获取属性不存在可以指定一个新的值

setattr(d,'y','FishC')
getattr(d,'y','您所访问的属性值不存在。。。')-->'FishC'
delattr(object,name) #删除属性,如果删除不存在的属性会抛出AttributeError异常
#property 的方法和使用  在之前操作里面一个类的实例化对象,当一个类被删除时候 这个实例化对象不会被删除,但用这个property 方法时候,类被删除实例化对象也会被删除
class C(object):
    def __init__(self,size=10):
        self.size=size

    def getsize(self):
        return self.size

    def setsize(self,value):
        self.size=value
        return self.size

    def delsize(self):
        del self.size
    x=property(getsize,setsize,delsize)
    
c=C()
c.x
10
c.x=18
c.x
18
c.getsize()
18
del c.x
c.getsize()```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值