马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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”。 |