面向对象--特殊成员
2018-09-05 07:57:10来源:博客园 阅读 ()
1.类的特殊成员之call
1 class SpecialMembers: 2 #类的构造方法 3 def __init__(self): 4 print("构造了一个方法") 5 6 def __call__(self): 7 print("构造了一个对象") 8 9 #创建一个对象,并执行类的构造方法 10 obj = SpecialMembers() 11 #执行对象的构造方法 12 obj() 13 #先执行类的构造方法,然后再执行对象的构造方法 14 SpecialMembers()()
2.类的特殊成员之getitem,setitem,delitem
1 class SpecialMembers: 2 #当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值 3 def __getitem__(self,item): 4 print(item) 5 def __setitem__(self,key,value): 6 print(key,value) 7 def __delitem__(self,key): 8 print(key) 9 10 #创建一个对象 11 obj = SpecialMembers() 12 #自动执行__getitem__方法 13 obj['value'] 14 #自动执行__setitem__方法 15 obj['k1'] = 'values' 16 #自动执行__delitem__方法 17 del obj['key']
3.类的特殊成员之dict
获取类或对象中的所有成员
1 class SpecialMembers: 2 """ 3 类的注释 4 """ 5 def __init__(self,name,age): 6 self.name = 'abc' 7 self.age = 18 8 #获取类中的成员 9 print(SpecialMembers.__dict__) 10 #创建一个对象 11 obj = SpecialMembers() 12 #获取对象中的成员 13 print(obj.__dict__)#以字典的形式输出
4.类的特殊成员之iter
1 class SpecialMembers: 2 def __iter__(self): 3 yield 1 4 yield 2 5 yield 3 6 #创建一个对象 7 obj = SpecialMembers() 8 #如果执行for循环对象时,会自动执行对象的__iter__方法,此时的__iter__就是一个生成器 9 for i in obj: 10 print(i)
5.类的特殊成员之add
1 class SpecialMembers: 2 def __init__(self,a1,a2): 3 self.a1 = a1 4 self.a2 = a2 5 def __add__(self,other): 6 return self.a1 + other.a2 7 8 obj1 = SpecialMembers(1,2) 9 obj2 = SpecialMembers(3,4) 10 print(obj1 + obj2)#5
6.真正的构造方法
1 class Foo: 2 def __init__(self,a1,a2):#初始化方法 3 """ 4 为空对象进行数据初始化 5 """ 6 self.a1 = a1 7 self.s2 = a2 8 9 def __new__(cls,*args,**kwargs): 10 """ 11 创建一个空对象 12 """ 13 return object.__new__(cls)#python内部创建一个当前类的对象 14 15 obj = Foo(1,2) 16 print(obj)
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python之对象持久化笔记 2019-08-13
- python之函数、面向对象 2019-08-13
- Python的面向对象2 2019-07-24
- Python之路【第九篇】:Python面向对象 2019-07-24
- python 之 并发编程(开启子进程的两种方式,进程对象的属性 2019-07-24
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash