zoukankan      html  css  js  c++  java
  • 类和对象的一些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()
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
      File "<input>", line 7, in getsize
    AttributeError: 'C' object has no attribute 'size'
    c.x
    Traceback (most recent call last):
      File "<input>", line 1, in <module>
      File "<input>", line 7, in getsize
    AttributeError: 'C' object has no attribute 'size'
  • 相关阅读:
    Android架构组件JetPack之DataBinding玩转MVVM开发实战(四)
    echarts统计图踩坑合集
    echarts如何设置背景图的颜色
    小程序获取的用户头像怎么做成圆形
    vue踩坑记-在项目中安装依赖模块npm install报错
    vue踩坑记- Cannot find module 'wrappy'
    编程微刊第七期文章汇总(2018.7)
    从列表中或数组中随机抽取固定数量的元素组成新的数组或列表
    wangEditor
    手把手教你用vue-cli构建一个简单的路由应用
  • 原文地址:https://www.cnblogs.com/liangliangzz/p/12884431.html
Copyright © 2011-2022 走看看