1. 程式人生 > 其它 >Python之面向物件程式設計

Python之面向物件程式設計

一、面向物件

面對物件,物件中的資料和具體實現過程,可以不用看到。

面對物件最重要的是“類”和“例項”,

類:建立例項的模板,“例項:是一個具體的物件

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