python--类常用的BIF函数(二十五)
【摘要】
python--类常用的BIF函数(二十五)
# 类的常用BIF方法# issubclass(子类,父类) 判断一个类是不是另一个类的子类class A: passclass B(A): passprint(issubclass(B,A)) #Trueprint(issubclass(B,object))...
python--类常用的BIF函数(二十五)
-
# 类的常用BIF方法
-
# issubclass(子类,父类) 判断一个类是不是另一个类的子类
-
class A:
-
pass
-
class B(A):
-
pass
-
print(issubclass(B,A)) #True
-
print(issubclass(B,object)) #True
-
-
'''
-
语法:isinstance(object,type)
-
-
作用:来判断一个对象是否是一个已知的类型。
-
其第一个参数(object)为对象,第二个参数(type)为类型名(int...)或类型名的一个列表((int,list,float)是一个列表)。其返回值为布尔型(True or flase)。
-
若对象的类型与参数二的类型相同则返回True。若参数二为一个元组,则若对象类型与元组中类型名之一相同即返回True。
-
'''
-
class A:
-
pass
-
class B(A):
-
pass
-
class C():
-
pass
-
-
b = B()
-
print(isinstance(b,B)) #True
-
print(isinstance(b,A)) #True
-
print(isinstance(b,C)) #False
-
-
'''
-
hasattr(object, name)
-
判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。
-
需要注意的是name要用括号括起来
-
-
getattr(object, name[,default])
-
获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。
-
需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,
-
可以在后面添加一对括号。
-
-
setattr(object, name, values)
-
给对象的属性赋值,若属性不存在,先创建再赋值。
-
-
delattr delattr(object, name) 删除属性。 属性存在则无返回,否则报 AttributeError。
-
'''
-
-
# hasattr(object, name)
-
class D:
-
num = 0
-
def fum(self,x):
-
self.num = x
-
d = D()
-
print(hasattr(d,'fum')) #True
-
print(hasattr(d,'num')) #True
-
-
# getattr()
-
print(getattr(d,'fum'))
-
print(getattr(d,'y','d对象访问的y不存在'))
-
-
# setattr()
-
print(setattr(d,'y','y的值'))
-
print(getattr(d,'y')) #y的值
-
-
# delattr()
-
print(delattr(d,'y')) #删除了y的属性
-
-
# property属性简化get和set方法
-
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):
-
self.size
-
x = property(getSize,setSize,delSize)
-
-
c = C()
-
print(c.getSize()) #通过对象调用getSize方法获取x的值
-
print(c.x) #使用property后,对象可以直接调用property调用x的值
-
c.x = 30 #使用property后,对象可以直接调用property设置x的值
-
print(c.x)
-
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/80434107
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)