Python面向对象特殊成员
类的特殊成员之call
#!/usr/bin/envpython #_*_coding:utf-8_*_ classSpecialMembers: #类的构造方法 def__init__(self): print("MyBlogisUrl:http://yw666.blog.51cto.com") #对象的构造方法 def__call__(self): print("MyNameis:Yangwen") #创建一个对象,并且执行类的构造方法 obj=SpecialMembers() #执行对象的构造方法 obj() #先执行类的构造方法,然后在执行对象的构造方法 SpecialMembers()()
输出
yangwen@Darker:~$python3/home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py MyBlogisUrl:http://yw666.blog.51cto.com MyNameis:Yangwen MyBlogisUrl:http://yw666.blog.51cto.com MyNameis:Yangwen
类的特殊成员之getitem、setitem、delitem
#!/usr/bin/envpython #_*_coding:utf-8_*_ classSpecialMembers: #当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值 def__getitem__(self,item): print(item) def__setitem__(self,key,value): print(key,value) def__delitem__(self,key): print(key) #创建一个对象 obj=SpecialMembers() #自动执行__getitem__方法 obj['value'] #自动执行__setitem__方法 obj['k1']="values" #自动执行__delitem__方法 delobj['key']
输出
ansheng@Darker:~$python3/home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py value k1values key
特殊的
#!/usr/bin/envpython #_*_coding:utf-8_*_ classSpecialMembers: #当执行obj['value']的时候就会自动执行__getitem__方法,并且把对象括号内的值当做__getitem__的值 def__getitem__(self,item): print(item,type(item),"__getitem__") def__setitem__(self,key,value): print(key,value) def__delitem__(self,key): print(key) #创建一个对象 obj=SpecialMembers() #自动执行__getitem__方法 obj[1:3]#__getslice__/__getitem__ #自动执行__setitem__方法 obj[1:3]=[11,22,33]#__setslice__/__setitem__ #自动执行__delitem__ delobj[1:3]#__delslice__/__delitem__
输出
yangwen@Darker:~$python3/home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py slice(1,3,None)__getitem__ slice(1,3,None)[11,22,33] slice(1,3,None)
类的特殊成员之dict
获取类或对象中的所有成员
#!/usr/bin/envpython #_*_coding:utf-8_*_ classSpecialMembers: """ 类的注释 """ def__init__(self): self.Name="Ansheng" self.Blog="http://yw666.blog.51cto.com" #获取类中的成员 print(SpecialMembers.__dict__) #创建一个对象 obj=SpecialMembers() #获取对象中的成员 print(obj.__dict__)
输出
yangwen@Darker:~$python3/home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py {'__weakref__':,'__doc__':'\n类的注释\n','__module__':'__main__','__dict__': ,'__init__': } {'Blog':'http://yw666.blog.51cto.com','Name':'Yangwen'}
类的特殊成员之iter
一个对象如果可以被for循环迭代时,说明对象中又__iter__方法,且方法中有yield值。
#!/usr/bin/envpython #_*_coding:utf-8_*_ classSpecialMembers: def__iter__(self): yield1 yield2 yield3 #创建一个对象 obj=SpecialMembers() #如果执行for循环对象时,自动会执行对象的__iter__方法,此时的__iter__就是一个生成器 foriinobj: print(i)
输出
yangwen@Darker:~$python3/home/yangwen/文档/Python_code/sublime/Week06/Day04/s2.py 1 2 3
以上所述是小编给大家介绍的Python面向对象特殊成员,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!