python物件導向(下)
物件導向第三講
-
python父類如果實現了構造方法,子類沒有,例項化子類物件時會預設呼叫父類的構造方法
class G(): def __init__(self): print('G __init__ invoke...') class P(): def __init__(self): print('P __init__ invoke...') class A(P,G): pass #def __init__(self): # P.__init__(self) #print('A __init__ invoke...') if __name__ == '__main__': a=A()
-
父類方法呼叫多種方法
class P1(): def __init__(self): print('P1 __init__ invoke...') class P2(): def __init__(self): print('P2 __init__ invoke...') class A(P1,P2): def __init__(self): P1.__init__(self) P2.__init__(self) print('A __init__ invoke...') if __name__ == '__main__': a=A()
-
第二種方法super(A.self)
class G(): def __init__(self): print('G __init__ invoke...') class P(): def __init__(self): print('P __init__ invoke...') class A(P,G): def __init__(self): #P.__init__(self) #G.__init__(self) super(A,self).__init__() print('A __init__ invoke...') if __name__ == '__main__': a=A()
-
靜態方法無法訪問物件的自身屬性變數
class A(): method=1#靜態屬性 def __init__(self,name): self.name=name def run(self): print('run invoke...') @staticmethod def func(x): print('self.name=%s'%x) print('func invoke...') @classmethod def test(cls): print('test...') if __name__ == '__main__': a=A('name') a.run() A.func('ZangzzzZ') A('xxx').func('yyy') A.test() print(dir(A.run('name'))) print(dir(A)) A.func('ZangzzzzZ')
-
方法過載 str
class A(object): def __init__(self,name,age): self.name=name self.age=age def __str__(self):#方法過載 return 'name=%s,age=%d'%(self.name,self.age) if __name__ == '__main__': a=A('ZangzzZ',20) print(str(a))#str(a)和a
-
單連結串列結構
#實現一個單連結串列 #用node來作為連結串列的節點抽象類 class Node(): def __init__(self,data): self.data=data self.next=None def show(self): print('node data=%d'%self.data) def __str__(self): return 'node data=%s'%self.data class LinkList(): def __init__(self): self.head=None def insertFirst(self,data): newNode = Node(data)#建立新節點 newNode.next=self.head self.head = newNode def deleteFirst(self): tmpNode= self.head self.head=self.head.next return tmpNode def travel(self): currentNode = self.head while currentNode is not None: print(currentNode) currentNode = currentNode.next if __name__ == '__main__': n1=Node('A') n2=Node('B') n3=Node('C') link=LinkList() link.insertFirst(n1) link.insertFirst(n2) link.insertFirst(n3) link.travel() print('+'*30) link.deleteFirst() link.deleteFirst() link.deleteFirst() link.travel()
-
過載__iter__和__next__實現一個可迭代的型別(有限迴圈的版本)
import random class A(): def __init__(self,seq): '''seq type(iterable)''' self.seq=seq self.index=0 def __iter__(self): return self#返回當前物件 def __next__(self): if self.index > len(self.seq) - 1: raise StopIteration else: tmp = self.seq[self.index] self.index+=1 return tmp if __name__ == '__main__': a=A([1,2,3,50,43]) for item in a: print(item)
-
過載__iter__和__next__實現一個可迭代的型別(無限迴圈的版本)
import random class A(): def __init__(self,seq): '''seq type(iterable)''' self.seq=seq def __iter__(self): return self#返回當前物件 def __next__(self): return self.seq[random.randint(0,len(self.seq)-1)] if __name__ == '__main__': a=A([1,2,3]) for item in a: print(item)
相關文章
- Python——物件導向Python物件
- Python物件導向Python物件
- python 物件導向Python物件
- 物件導向--下物件
- 物件導向(下)物件
- python-程式導向、物件導向、類Python物件
- python物件導向(一)Python物件
- python物件導向一Python物件
- Python物件導向(上)Python物件
- Python如何設計物件導向的類(下)Python物件
- python物件導向思想(類與物件)Python物件
- python物件導向[基礎]Python物件
- Python 物件導向介紹Python物件
- Python物件導向知多少?Python物件
- python 初識物件導向Python物件
- Python 物件導向筆記Python物件筆記
- 物件導向-物件導向思想物件
- 【Python】5.物件導向的PythonPython物件
- 【python 物件導向】 python物件學習筆記《1》Python物件筆記
- Python物件導向程式設計Python物件程式設計
- 草根學Python(九) 物件導向Python物件
- Python物件導向三大特性Python物件
- 2.1.0 Python初識物件導向Python物件
- python之成員(物件導向)Python物件
- 面向Python,物件導向(基礎)Python物件
- python-物件導向入門Python物件
- python---之物件導向selfPython物件
- Python進階之物件導向Python物件
- Python 物件導向程式設計Python物件程式設計
- Python基礎之物件導向Python物件
- Python物件導向之九:反射Python物件反射
- Python之物件導向和麵向過程Python物件
- 面向Python,物件導向(基礎2)Python物件
- Python進階教程5——物件導向Python物件
- 2.1.1 Python物件導向三大特性Python物件
- Python OOP 物件導向程式設計PythonOOP物件程式設計
- python技能--物件導向程式設計Python物件程式設計
- 【3】python入門-物件導向-2Python物件