天天看點

自學Python5.3-類和對象的簡單操作

自學Python之路

自學Python5.3-類和對象的簡單操作

1. 定義一個類 

定義一個類的格式如下:

class 類名:
    方法清單      

 舉例1 : 

class Cat:    #定義一個Cat類
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")      

 舉例2:

class Car:  # 定義一個Car類
    # 屬性
    # 方法
    def getCarInfo(self):
        print('車輪子個數:%d, 顔色%s'%(self.wheelNum, self.color))     # 稍後介紹
    def move(self):
        print("車正在移動...")      

說明:

  • 定義類時有2種:新式類和經典類,上面的Car為經典類,如果是Car(object)則為新式類
  • 類名 的命名規則按照"大駝峰"

2. 建立對象

類不會自動執行,于是需要建立對象。

建立對象的格式為: 

對象名 = 類()      

 舉例1:

class Cat:
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")
#建立一個對象
tom = Cat()      

 舉例2:

class Car:  # 定義一個Car類
    # 屬性
    # 方法
    def getCarInfo(self):
        print('車輪子個數:%d, 顔色%s'%(self.wheelNum, self.color))     # 稍後介紹
    def move(self):
        print("車正在移動...")
#建立一個對象
BWM = Car()      

3. 調用對象的方法

  舉例1 :

class Cat:
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")
#建立一個對象
tom = Cat()
#調用tom指向的對象中的方法
tom.eat()
tom.drink()      
自學Python5.3-類和對象的簡單操作

4. 擷取對象添加屬性

  舉例1 :

class Cat:
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")
#建立一個對象
tom = Cat()
#調用tom指向的對象中的方法
tom.eat()
tom.drink()
# 給tom指向的對象添加兩個屬性
tom.name = “湯姆”
tom.age = 40
print("%的年齡是:%d"%(tom.name,tom.age))      

  

class Cat:
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")
    def introduce(self):
        print("%的年齡是:%d"%(tom.name,tom.age))
#建立一個對象
tom = Cat()
#調用tom指向的對象中的方法
tom.eat()
tom.drink()
# 給tom指向的對象添加兩個屬性
tom.name = “湯姆”
tom.age = 40
#擷取屬性
tom.introduce()      

5. 建立多個對象 

class Cat:
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")
    def introduce(self):
        print("%的年齡是:%d"%(tom.name,tom.age))
#建立一個對象
tom = Cat()
#調用tom指向的對象中的方法
tom.eat()
tom.drink()
# 給tom指向的對象添加兩個屬性
tom.name = “湯姆”
tom.age = 40
#擷取屬性
tom.introduce()
#建立另一個對象
lanmao = Cat()
#調用lanmao指向的對象中的方法
lanmao.eat()
lanmao.drink()
# 給lanmao指向的對象添加兩個屬性
lanmao.name = “藍貓”
lanmao.age = 12
#擷取屬性
tom.introduce()
lanmao.introduce()      

  這樣的結果肯定不對,那是因為lanmao.introduce()調用記憶體的時候對應的是print("%的年齡是:%d"%(tom.name,tom.age)) ,那麼如何解決此問題???

class Cat:
    #屬性
    #方法
    def eat(self):
        print("貓在吃魚....")
    def drink(self):
        print("貓正在喝kele.....")
    def introduce(self):
        print("%的年齡是:%d"%(self.name,self.age))
#建立一個對象
tom = Cat()
#調用tom指向的對象中的方法
tom.eat()
tom.drink()
# 給tom指向的對象添加兩個屬性
tom.name = “湯姆”
tom.age = 40
#擷取屬性
tom.introduce()
#建立另一個對象
lanmao = Cat()
#調用lanmao指向的對象中的方法
lanmao.eat()
lanmao.drink()
# 給lanmao指向的對象添加兩個屬性
lanmao.name = “藍貓”
lanmao.age = 12
#擷取屬性
tom.introduce()
lanmao.introduce()      
  • 所謂的self,可以了解為自己
  • self就相當于一個變量, 可以換成任何一個字元
  • 可以把self當做C++中類裡面的this指針一樣了解,就是對象自身的意思
  • 某個對象調用其方法時,python解釋器會把這個對象作為第一個參數傳遞給self,是以開發者隻需要傳遞後面的參數即可