Python 类与对象 BIF

对于类与对象模块,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'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值