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