python学习笔记对象(九)

一 issubclass

class 是否为classinfo的子类
语法:
issubclass(class,classinfo)

>>> class A:
	pass
>>> class B(A):
	pass
>>> issubclass(B,A)
True
>>> issubclass(B,B)
True
>>> issubclass(B,object)
True
>>> class C:
	pass

>>> issubclass(B,C)
False
>>>

二 isinstance

实例对象object,是否为classinfo类的实例
语法:
isinstance(object,classinfo)

>>> b1 = B()
>>> isinstance(b1,B)
True
>>> isinstance(b1,A)
True
>>> isinstance(b1,C)
False
>>> isinstance(b1,(A,B,C))
True

三 hasattr、getattr、setattr、delattr

3.1 hasattr

对象object是否有指定的name属性,name为字符串类型
语法:
hasattr(object,name)

attr = attribute 属性

>>> class D:
	def __init__(self,x=0):
		self.x = x
		
>>> d1 = D()
>>> hasattr(d1,'x')
True
>>> hasattr(d1,x)
Traceback (most recent call last):
  File "<pyshell#27>", line 1, in <module>
    hasattr(d1,x)
NameError: name 'x' is not defined

3.2 getattr

对象object指定的name属性的值,name为字符串类型
语法:
getattr(object,name[,default])

>>> getattr(d1,'x')
0
>>> getattr(d1,'y')
Traceback (most recent call last):
  File "<pyshell#29>", line 1, in <module>
    getattr(d1,'y')
AttributeError: 'D' object has no attribute 'y'
>>> getattr(d1,'y','你所访问的属性不存在')
'你所访问的属性不存在'

3.3 setattr

设置object对象name属性的值,name为字符串类型
语法:
setattr(object,name,value)

>>> setattr(d1,'y','20')
>>> getattr(d1,'y')
'20'

3.4 delattr

删除对象中指定的属性
语法:
delattr(object,name)

>>> delattr(d1,'y')
>>> getattr(d1,'y')
Traceback (most recent call last):
  File "<pyshell#34>", line 1, in <module>
    getattr(d1,'y')
AttributeError: 'D' object has no attribute 'y'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值