|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 汪蛋 于 2017-9-9 10:29 编辑
知识点一:issubclass(class, classinfo)
- class A:
- pass
- class B(A):
- pass
- # B是否是A的子类?
- print(issubclass(B,A))
复制代码 运行结果为“True”。
知识点二:isinstance(object, classinfo)
- class A:
- pass
- class B(A):
- pass
- b = B()
- # b是否是B的实例化对象?
- print(isinstance(b, B))
- # b是否是A的实例化对象?
- print(isinstance(b, A))
复制代码 运行结果均为“True”。
知识点三:hasattr(object, name)
- class C:
- def __init__(self, x=0):
- self.x = x
- def hello(self, y=0):
- self.y = y
-
- c = C()
- # x是否是c的属性?
- print(hasattr(c, 'x'))
- # y是否是c的属性?
- print(hasattr(c, 'y'))
复制代码 运行结果为“True”and“False”。需要注意的是,注意单引号,否则会报错。
相关BIF还有getattr(object, name[, default]),setattr(object, name, value),delattr(object, name)。
知识点四: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)
- c = C()
- print("c.getSize的值为:", c.getSize())
- print("c.x的值为:", c.x)
- print("c.size的值为:", c.size)
- # 删除size属性
- del c.x
复制代码 运行结果均为“10”。 |
|