当前位置: 首页 > 网络知识

Python基础入门学习笔记 040 类和对象:一些相关的BIF

时间:2026-01-29 09:25:53

一些相关的BIF

issubclass(class,classinfo) 如果第一个参数(class)是第二个参数(classinfo)的一个子类,则返回True,否则返回False

1 >>> class A: 2 pass 3 4 >>> class B(A): 5 pass 6 7 >>> issubclass(B,A) 8 True 9 >>> issubclass(B,B) #一个类被认为是其自身的子类 10 True 11 >>> issubclass(B,object) # object是所有类的基类 12 True 13 >>> class C: 14 pass 15 16 >>> issubclass(B,C) 17 False

isinstance(object,classinfo) 如果第一个参数(object)是第二个参数(classinfo)的实例对象,则返回True,否则返回False

1 >>> issubclass(B,C) 注:第一个参数如果不是对象,则永远返回False 2 False 3 >>> b1 = B() 4 >>> isinstance(b1,B) 5 True 6 >>> isinstance(b1,C) 7 False 8 >>> isinstance(b1,A) 9 True 10 >>> isinstance(b1,(A,B,C)) 11 True

hasattr(object, name) 用来测试一个对象里是否有指定的属性,第一个参数(object)是对象,第二个参数(name)是属性名(属性的字符串名字)

1 >>> class C: 2 def __init__(self,x=0): 3 self.x = x 4 5 6 >>> c1 = C() 7 >>> hasattr(c1,'x') #注意,属性名要用引号括起来 8 True

getattr(object, name[, default]) 返回对象指定的属性值,如果指定的属性不存在,则返回default(可选参数);若没有设置default参数,则抛出异常

1 >>> getattr(c1,'x') 2 0 3 >>> getattr(c1,'y') 4 Traceback (most recent call last): 5 File "<pyshell#25>", line 1, in <module> 6 getattr(c1,'y') 7 AttributeError: 'C' object has no attribute 'y'

setattr(object, name, value) 可以设置对象中指定属性的值,如果指定的属性不存在,则会新建属性并赋值

1 >>> setattr(c1,'y','FishC') 2 >>> getattr(c1,'y') 3 'FishC'

delattr(object, name) 用于删除对象中指定的属性,如果属性不存在,抛出异常。

1 >>> delattr(c1,'y') 2 >>> delattr(c1,'Z') 3 Traceback (most recent call last): 4 File "<pyshell#30>", line 1, in <module> 5 delattr(c1,'Z') 6 AttributeError: Z

property(fget=None,fset=None,fdel=None, doc=None) 用来通过属性设置属性,第一个参数是获取属性的方法名,第二个参数是设置属性的方法名,第三个参数是删除属性的方法名

1 >>> class C: 2 def __init__(self,size =10): 3 self.size = size 4 def getSize(self): 5 return self.size 6 def setSize(self,value): 7 self.size = value 8 def delSize(self): 9 del self.size 10 x=property(getSize,setSize,delSize) 11 12 13 14 >>> c = C() 15 >>> c.x #调用getSize() 16 10 17 >>> c.x = 12 #调用SetSize() 18 >>> c.x 19 12 20 >>> c.size 21 12 22 >>> del c.x #调用DelSize() 23 >>> c.size 24 Traceback (most recent call last): 25 File "<pyshell#53>", line 1, in <module> 26 c.size 27 AttributeError: 'C' object has no attribute 'size'



上一篇:Python基础入门学习笔记 048 魔法方法:迭代器
下一篇:Python基础入门学习笔记 065 GUI的终极选择:Tkinter2
python
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器
  • 英特尔第五代 Xeon CPU 来了:详细信息和行业反应
  • 由于云计算放缓引发扩张担忧,甲骨文股价暴跌
  • Web开发状况报告详细介绍可组合架构的优点
  • 如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳
  • 美光在数据中心需求增长后给出了强有力的预测
  • 2027服务器市场价值将接近1960亿美元
  • 生成式人工智能的下一步是什么?
  • 分享在外部存储上安装Ubuntu的5种方法技巧
  • 全球数据中心发展的关键考虑因素
  • 英特尔与 Vertiv 合作开发液冷 AI 处理器

    英特尔第五代 Xeon CPU 来了:详细信息和行业反应

    由于云计算放缓引发扩张担忧,甲骨文股价暴跌

    Web开发状况报告详细介绍可组合架构的优点

    如何使用 PowerShell 的 Get-Date Cmdlet 创建时间戳

    美光在数据中心需求增长后给出了强有力的预测

    2027服务器市场价值将接近1960亿美元

    生成式人工智能的下一步是什么?

    分享在外部存储上安装Ubuntu的5种方法技巧

    全球数据中心发展的关键考虑因素