issubclass

 issubclass(cls, class_or_tuple, /)
Return whether 'cls' is a derived from another class or is the same class.
 class A:
pass class B(A):
pass class C:
pass print(issubclass(A,(B,A))) # 一个类会被认为自己的子类 . print(issubclass(A,B)) # 第一个是否是第二个类的子类 print(issubclass(B,(A,C))) help(issubclass)

 
 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
True
True
True
False
>>>

isinstance

 #isinstance   检查一个实例对象是否属于一个类 . (第二个也可以是一个元祖 可以有多个类.)
class A:
pass class B(A):
pass class C:
pass b1=B()
print(isinstance(b1,A)) print(isinstance(b1,B)) print(isinstance(b1,C)) print(isinstance(b1,(C,B)))
 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
True
True
False
True
>>>

hasattr  判断一个 对象里面有没有该属性

 #   hasattr(第一个是对象.第二个是属性名)    (attr=attribute 属性)
class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x #测试一个对象是否有指定的和属性.
c1=C()
print(hasattr(c1,'x'))# 属性必须用 '' 来 修饰
 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
True
>>>

getattr(实例对象,属性,不存在打印的值)(attribute 属性)  得到一个实例对象的属性的值 , 如果该属性不存在则打印第三个参数

 #   getattr(object,name[,default)   返回对象指定的属性值 如果指定的参数不存在 如果你制订了default则会defaulf打印出来,否则会有一个arrtibute的异常 ,
class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x c1=C() print(getattr(c1,'x'))
print(getattr(c1,'y','您所访问的属性不存在'))
 0
您所访问的属性不存在
>>>

setattr(实例对象,属性,值) 给实例对象一个属性值 如果该属性不存在则 建立属性然后赋值 .

 class A:
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x c1=C()
print(getattr(c1,'y','您访问的属性不存在')) print(setattr(c1,'y',0)) print(getattr(c1,'y','您访问的属性不存在'))
 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
您访问的属性不存在
None
0
>>>

delattr(实例变量,属性) 属性不存在则抛出 AttributeError的异常

 class A:    
pass class B(A):
pass class C:
def __init__(self,x=0):
self.x=x c1=C()
print(getattr(c1,'y','您访问的属性不存在')) print(setattr(c1,'y',0)) print(getattr(c1,'y','您访问的属性不存在')) print(delattr(c1,'y')) print(getattr(c1,'y','您访问的属性不存在'))
 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
您访问的属性不存在
None
0
None
您访问的属性不存在
>>>

property(fget=None,fset=None,fdel=None,doc=None)

    (得到 , 重置 , 删除 . )

 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):
del self.size x=property(getSize,setSize,delSize,'这个难道是注释') c1=C() # 生成一个 对象实例 print(c1.getSize()) # 调用getSize()函数 . print(c1.x) c1.x=18 print(c1.size) # 调用 size 属性 . print(c1.getSize()) del c1.x print(c1.size)
 =============== RESTART: C:/Users/Administrator/Desktop/new.py ===============
10
10
18
18
Traceback (most recent call last):
File "C:/Users/Administrator/Desktop/new.py", line 30, in <module>
print(c1.size)
AttributeError: 'C' object has no attribute 'size'
>>>

最新文章

  1. backup1:开始数据库备份
  2. 关于MySQL数据库优化的部分整理
  3. IFC是什么
  4. cojs 疯狂的粉刷匠 疯狂的斐波那契 题解报告
  5. uva 11020 Efficient Solutions
  6. CSS3 3D转换
  7. 解决Button在IE6、7下的自适应宽度问题
  8. C标准函数库中获取时间与日期、对时间与日期数据操作及格式化
  9. PostgreSQL学习手册(常用数据类型)
  10. Ubuntu 16.04 安装wine QQ
  11. linux卸载openjdk
  12. poj 3294 Life Forms - 后缀数组 - 二分答案
  13. ECMAScript 6 学习总结
  14. 如何创建并运行java线程 , 多线程使用
  15. [CodeForces - 447A] A - DZY Loves Hash
  16. mybatis 异常 There is no getter for property named &#39;bizId&#39; in &#39;class java.lang.Long&#39;
  17. SPSS-方差分析
  18. 探索未知种族之osg类生物---呼吸分解之advance
  19. jQuery把所有被选中的checkbox的某个属性值连接成字符串
  20. 【monkey】mokey常用命令&lt;一&gt;

热门文章

  1. Qt之QRoundProgressBar(圆形进度条)
  2. javaSE之如何将一个文件复制到另一个文件
  3. webBrowser1执行函数
  4. 读书笔记3 Socket
  5. 百度地图API:利用瓦片生成工具,自定义背景图片
  6. 多分类问题中,实现不同分类区域颜色填充的MATLAB代码(demo:Random Forest)
  7. 5月11日 ArrayList集合复习、特殊集合、枚举类型
  8. MongoDB 一对多关系建模
  9. OpenGL基础图形编程
  10. BootStrap 最佳资源合集(转)