Python之面向物件程式設計
阿新 • • 發佈:2021-12-21
一、面向物件
面對物件,物件中的資料和具體實現過程,可以不用看到。
面對物件最重要的是“類”和“例項”,
類:建立例項的模板,“例項:是一個具體的物件
1.1 類
類變數可以直接訪問(例如:person.name)
類函式不能直接訪問,必須要給函式加@classmethod,變成類函式,才可以直接呼叫。
(例如:person.play())
class person: name='default'#類變數 age=0 gender='male' weight=0 def set_name(self,name):#類方法 self.name=name#函式的引數賦給例項的變數 def eat(self): print("eating") def play(self): print("playing") def jump(self): print("jumping") -------------------------------- print(person.name)#類變數可以直接訪問 列印結果: default -------------------------------------------------------- person.play()#類變數不能直接訪問,需要加@classmethod,變成類函式,才能直接訪問列印結果: person.play()# TypeError: play() missing 1 required positional argument: 'self'
第二段程式碼:給類函式加@classmethd,變成類函式,可以直接訪問 class person: name='default'#類變數 age=0 gender='male' weight=0 def set_name(self,name):#類方法 self.name=name#函式的引數賦給例項的變數 def eat(self):print("eating") @classmethod def play(self): print("playing") def jump(self): print("jumping") ------------------------------------------- person.play() 列印結果: playing
1.2 例項
類是一個模板,建立類時,可以將類必須有的屬性初始化進去。然後每個例項都有這些屬性,但具體屬性的值可以不同。
class person: # 例項化函式,第一個引數永遠是self,指向例項本身 #建立例項時,必須傳入於__init__匹配的引數 def __init__(self,name,age,score): self.name=name#將引數要賦值給例項的變數 self.age=age self.score=score def eat(self): print(f"{self.name} is eating") @classmethod def play(self): print("playing") def jump(self): print("jumping") def get_score(self): if self.score>=90: return "A" elif self.score>=60: return "B" else: return "C" -------------------------------------------------------------- lyh=person("balllyh",25,96)#例項化 lyh.eat()#例項函式可以直接呼叫 print(lyh.name) print(lyh.get_score()) 列印結果: balllyh is eating balllyh A