《零基础入门学习Python》学习过程笔记【40类和对象的相关内置函数】
来源:互联网 发布:软件过程域哪些 编辑:程序博客网 时间:2024/05/17 00:59
BIF:内置函数
object是所有类的基类,所有类都默认继承object
1.如何判断一个类是否为另一个类的子类? issubclass(类名A,类名B) 如果A是B的子类,则返回True否则返回False
但这个检查是费严格性的检查
a对于这个函数一类会被认为是它本身的子类
b该函数的第二个参数可以是 很多类名组成的一个元组 例如 issubclass(类名A,(类名B,类名C,类名D))。如果类名A是他们其中一个类的子类那么会返回True,否则返回False
>>> class A:pass>>> class B(A):pass>>> issubclass(B,A)True>>> issubclass(A,A)True>>> issubclass(B,object)True>>> class C:pass>>> issubclass(B,C)False>>> issubclass(B,(A,C))True
2.如何判断一个实例对象是否属于一个类? isinstance(对象名,类名) 或者 isinstance(对象名,(类名,类名,类名...)) 如果对象是其中一个类的实例化对象就会返回True
instance英[ˈɪnstəns]
>>> class A:pass>>> a=A()>>> isinstance(a,A)True
>>> class B:pass>>> isinstance(a,(A,B))True特殊情况:子类的对象不仅属于子类也属于父类
>>> class B(A):pass
>>> h=B()
>>> isinstance(h,B)
True
>>> isinstance(h,A)
True
3如何判断一个对象是否有一个属性? hasattr(对象名,"属性名")
>>> class C:x=0y=0def __init__(self,x,y):self.x=xself.y=y
>>> c=C(1,2)
>>> hasattr(c,'x')True>>> hasattr(c,'y')True4.如何的到对象的属性值?getattr(对象名,'属性名') 或者 getattr(对象名,'属性名',"在找不到属性时返回的字符串内容")
>>> class A:x=0y=0def __init__(self,x,y):self.x=xself.y=y>>> a=A(2,2)>>> getattr(a,'x')2>>> getattr(a,'y')2>>> getattr(a,'z')Traceback (most recent call last): File "<pyshell#75>", line 1, in <module> getattr(a,'z')AttributeError: 'A' object has no attribute 'z'
>>> getattr(a,'z',"没有这个属性")'没有这个属性'
5.如何改变对象中指定属性的值?setsttr(对象名,'属性名',值),该对象没有这个属性时,该对象会创建该属性,并给它赋值
>>> class A:x=0def __init__(self,x):self.x=x>>> a=A(1)>>> setattr(a,'x',2)>>> setattr(a,'y',1)>>> hasattr(a,'y')True
6.如何删除对象中指定的属性?delattr(对象名,'属性名')
感觉不太好用,删完还是能检查出存在
>>> class A:x=1y=2z=3def __init__(self,x,y,z):self.x=xself.y=yself.z=z>>> a=A(1,2,3)
>>> delattr(a,'x')>>> hasattr(a,'x')True
7如何通过属性设置属性?变量(不可取为与该属性同名)=property(获取属性的方法,设置属性的方法,删除属性的方法)
我什么用property()?
在一个属性有获值,设置值,删除这属性(属性值清空)这三个函数时,我们将个三个函数集成另一个属性
可以通过对象名.属性名 来获取,设置,删除原属性...这样做不用写繁杂的函数名,并且当函数更名时,属性名字不变...方便
>>> class A:a=0def __init__(self,a):self.a=adef getA(self):return self.adef setA(self,b):self.a=bdef delA(self):del self.aa1=property(getA,setA,delA)>>> hh=A(1)>>> hh.a11>>> hh.a1=2>>> hh.a12>>> del hh.a1>>> hh.a10
阅读全文
0 0
- 《零基础入门学习Python》学习过程笔记【40类和对象的相关内置函数】
- 零基础入门学习Python(20):对象(5)类和对象的内置函数
- 《零基础入门学习Python》学习过程笔记【018函数开头文档,及参数相关问题】
- 《零基础入门学习Python》学习过程笔记【017函数】
- 《零基础入门学习Python》学习过程笔记【41魔法方法:构造函数和析构函数】
- 鱼C工作室《零基础入门学习Python》 学习过程笔记【011列表类的方法】
- 《零基础入门学习Python》学习过程笔记【38类的继承】
- 《零基础入门学习Python》学习过程笔记【39类的其他内容】
- 《零基础入门学习Python》学习过程笔记【020函数的局部变量和全全局变量内部函数和闭包】
- 《零基础入门学习Python》学习过程笔记【27集合】
- 《零基础入门学习Python》学习过程笔记【28文件】
- 《零基础入门学习Python》学习过程笔记【019函数返回值问题】
- 《零基础入门学习Python》学习过程笔记【021匿名函数】
- 《零基础入门学习Python》学习过程笔记【012列表的常用函数,逻辑关系,+,*,in,列表推导式】
- 【零基础入门学习Python笔记014】字符串:各种奇葩的内置方法
- 《零基础入门学习Python》学习过程笔记【014字符串的使用】
- 《零基础入门学习Python》学习过程笔记【36,37类】
- 零基础入门Python学习笔记3
- js中的常见的button绑定事件的方法
- TortoiseSVN 设置 允许修改注释 创建 pre-revprop-change.bat文件
- C# DataGridView 中 DataGridViewComboBoxCell 下拉列表框设置选择事件
- 重温Python基础1:基础知识
- 魏新是什么人?
- 《零基础入门学习Python》学习过程笔记【40类和对象的相关内置函数】
- 小程序前期准备(连载二)
- 《零基础入门学习Python》学习过程笔记【41魔法方法:构造函数和析构函数】
- 今天注册了账号,从此记录一下我的生活
- 感谢周易算命大师元真先生
- OpenCV 写入视频方法总结(之前落下很久的)
- 《零基础入门学习Python》学习过程笔记【53如何用Python访问互联网】
- 【多校连萌2】1281: 邪能炸弹【补题】
- 惯性导航——扩展卡尔曼滤波(一)