对于类与对象模块,Python提供了一些BIF
object,是所有类的基类,所有类默认继承object类
内置函数BIF | 说明 |
---|---|
issubclass(class,classinfo) | 如果class是classinfo的子类则返回为True,否则返回为False,classinfo可以是一个,也可使多个类组成的元组,若有一个class的父类,则返回为True |
isinstance(objiect,classinfo) | 检查一个对象是否属于一个类,如果第一个参数不是对象则永远返回为False |
hasattr(bojiect,name) | 这里的attr 是 attribute 的缩写,代表属性,功能是测试一个对象里是否有相关的属性,有则返回True,否则返回False,name是字符串类型 |
getattr(object,name[,default]) | 返回对象指定属性的值,如果属性不存在则返回 default 的值,default没有定义则抛出异常AttributeError |
setattr(object,name,value) | 功能:可设定对应对象的值,如果属性不存在,则会创建新的对象,并进行赋值 value |
delattr(object,name) | 功能,用于删除对象中的指定属性,属性不存在则抛出AttributeError的异常 |
property(fget = None , fset = None , fdel = None ,doc = None) | 通过属性来设置属性,即设置定义好的属性,返回一个属性,操作属性是必须传入写好的方法 |
>>> class A():
def printA(self):
print("A")
>>> class Aa(A):
pass
>>> issubclass(A,Aa)
False
>>> issubclass(Aa, A)
True
>>> a = A()
>>> isinstance(a,A)
True
>>> isinstance(a,Aa) #父类的对象不能包含于子类
False
>>> a = Aa()
>>> isinstance(a,Aa)
True
>>> isinstance(a,A) #子类对象可以包含于父类
True
>>> isinstance(1,int) #这里的 1 是整数对象
True
>>> class C():
def __init__(self , x):
self.x = x
>>> c = C(2)
>>> hasattr(c, "x")
True
>>> getattr(c,"x",0)
2
>>> getattr(c,"y",0)
0
>>> getattr(c,"y")
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
getattr(c,"y")
AttributeError: 'C' object has no attribute 'y'
>>> getattr(c,"y","访问的参数不存在,提高用户体验")
'访问的参数不存在,提高用户体验'
>>> delattr(A,"x")
Traceback (most recent call last):
File "<pyshell#29>", line 1, in <module>
delattr(A,"x")
AttributeError: x
>>> delattr(c, "x")
>>> c.x
Traceback (most recent call last):
File "<pyshell#31>", line 1, in <module>
c.x
AttributeError: 'C' object has no attribute 'x' #属性 x 被删除,类里没有其对应的属性
class Proper():
def __init__(self,size = 100 ):
self.size = size
def getsize(self):
return self.size
def setsize(self,value):
self.size = value
def delsize(self):
del self.size
p = property(getsize, setsize, delsize)
>>> q = Proper() #实例化
>>> q.p
100
>>> q.p = 10
>>> q.p
10
>>> del q.p #删除对应于第三个删除方法
>>> q.p
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
q.p
File "C:/Users/Administrator/Desktop/Python/xiaojiayu课程实例代码/类与对象——property函数的使用.py", line 5, in getsize
return self.size
AttributeError: 'Proper' object has no attribute 'size'