python-类方法和属性
生活随笔
收集整理的這篇文章主要介紹了
python-类方法和属性
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
#類方法,屬性和迭代器
#為了類是新型的,應(yīng)該把語句__metaclass__=type放在模塊的開始,
#或者子類化內(nèi)建類object
class newtype(object):pass#構(gòu)造方法:一個對象創(chuàng)建后,會立即調(diào)用構(gòu)造方法,即__init__
class stu:def __init__(self):self.num=56student=stu()
print(student.num)class cls:def __init__(self,name):self.name=namecl=cls('TXY')
print(cl.name)#若一個類的構(gòu)造方法被重寫,那么就需要調(diào)用超類的構(gòu)造方法,
#否則對象可能不會被正確的初始化#調(diào)用未綁定的超類構(gòu)造方法:類名.__init__
class shape:def __init__(self):#在調(diào)用一個實例的方法時,self參數(shù)被自動綁定到實例:綁定方法self.area=100
class rect(shape):def __init__(self):shape.__init__(self)#實例不會綁定,參數(shù)可以自由提供self,:未綁定方法self.width=10self.height=10rec=rect()
print(rec.area)
print(rec.width)#使用super函數(shù)
class circle(shape):def __init__(self):super(circle,self).__init__()self.r=10
cir=circle()
print(cir.area)
print(cir.r)#成員訪問:
'''
基本的序列和映射規(guī)則
__len__(self):返回集合中的項目數(shù)量
__getitem__(self,key):返回鍵對應(yīng)的值
__setitem__(self,key,value):按一定的方式存儲與key相關(guān)的value
__delitem__(self,key):對一部分對象使用del語句時被調(diào)用
'''#創(chuàng)建一個無窮序列
import math
def checkindex(key):if not isinstance(key,int):raise TypeErrorif key<0:raise IndexErrorclass AS:def __init__(self,start=0,step=1):self.start=startself.step=stepself.change={}def __getitem__(self,key):checkindex(key)try:return self.change[key]except KeyError:return self.start+key*self.stepdef __setitem__(self,key,value):checkindex(key)self.change[key]=value
s=AS(1,2)
print(s[4])#子類化列表,字典和字符串
'''
實現(xiàn)一個和內(nèi)建列表行為相似的序列,list沒有被重寫的方法可以直接調(diào)用
'''
class MyList(list):def __init__(self,*args):super(MyList,self).__init__(*args)self.counter=0def __getitem__(self,index):self.count+=1return super(MyList,self).__getitem__(index)#屬性:通過訪問器定義的特性被稱為屬性
#創(chuàng)建屬性的一種機制:property函數(shù)
__metaclass__=type
class Rect:def __init__(self):self.width=0self.height=0def getSize(self):return self.width,self.heightdef setSize(self,size):self.width,self.height=sizesize=property(getSize,setSize)#創(chuàng)建了屬性sizerect=Rect()
rect.width=20
rect.height=30
print(rect.getSize())
rect.size=(100,100)
print(rect.getSize())
運行結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的python-类方法和属性的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 独立的小易
- 下一篇: python-字典方法