自學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()

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,是以開發者隻需要傳遞後面的參數即可