1. 程式人生 > >Python自動化開發課堂筆記【Day06】 - Python進階(類)

Python自動化開發課堂筆記【Day06】 - Python進階(類)

擴展性 程序 lex 類名 人物 優點 ini 參數 self.

類與對象

面向過程的程序設計:
  優點:極大的降低了程序的復雜度
  缺點:一套流水線或者流程就是用來解決一個問題,生產汽水的流水線無法生產汽車,即使能,也是得大改,改一個組件,牽一發而動全身
面向對象的程序設計
  優點:解決了程序的擴展性,對於某一個對象單獨修改,會立刻反映到整個體系中,如對遊戲中一個人物參數的特征和技能修改都很容易
  缺點:可控性差,無法像面向過程的程序設計流水線式的可以很精準的預測問題的處理流程和結果,面向對象的程序一旦開始就由對象之間的交互解決問題,誰也無法預測最終結果。

python中一切皆對象,且python3統一了類與類型的概念,類型就是類。

>>> dict #
類型dict就是類dict <class dict> >>> d = dict(name=egon) #實例化d >>> d.pop(name)#向d發一條消息,執行d的方法 egon 類是一系列對象共有的特征(變量的定義)與技能(函數的定義)的結合體 class Chinese: country=China # Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) def __init__(self,name,age,sex): #p1.Name=name;p1.Age=age,p1.Sex=sex
self.Name=name self.Age=age self.Sex=sex def talk(self): print(talking,self) 屬性的引用 print(Chinese.country) print(Chinese.talk) Chinese.talk(123) Chinese.x=1 print(Chinese.x) Chinese.country=123123123123123 print(Chinese.country) #實例化 class Chinese: country
= China # Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) def __init__(self, name, age, sex): # p1.Name=name;p1.Age=age,p1.Sex=sex self.Name = name self.Age = age self.Sex = sex def talk(self): print(%s is talking %self.Name) p1=Chinese(egon,18,male) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) p2=Chinese(alex,9000,female) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) 對象的使用:只有一種,就是屬性引用 print(p1.Name) print(p1.Age) print(p1.Sex) print(p2.Name) print(p1.country) print(p2.country) p1.talk() p2.talk() class Chinese: country = China def __init__(self, name, age, sex): # self.country=123123123123123123 self.Name = name self.Age = age self.Sex = sex def talk(self): print(%s is talking %self.Name) 查看類名稱空間 print(Chinese.__dict__) 對象的空間 p1=Chinese(egon,18,male) #Chinese.__init__(p1,‘egon‘,‘18‘,‘male‘) p2=Chinese(alex,180,male) print(p1.__dict__) print(p1.Age) #p1.__dict__[‘Age‘] print(p1.country,id(p1.country)) print(p2.country,id(p2.country)) print(Chinese.talk) print(p1.talk) p1.talk() #Chines.talk(p1) print(p2.talk) p2.talk()#chinese.talk(p2)

Python自動化開發課堂筆記【Day06】 - Python進階(類)