# 定義dog類,類名一般首字母大寫。
#方法__init__()是乙個特殊的方法,請注意是雙下劃線。每當你根據dog類建立新例項時,python都會自動執行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免python預設方法與普通方法發生名稱衝突。
#類的方法與普通的函式只有乙個特別的區別——它們必須有乙個額外的第乙個引數名稱, 按照慣例它的名稱是 self。以self為字首的變數都可供類中的所有方法使用,我們還可以通過類的任何例項來訪問這些變數。
class dog:
# 類中的函式成為方法。
# 特殊方法,構造例項的時候python自動呼叫。
def __init__(self, name, age):
'''初始化屬性。'''
self.name = name
self.age = age
def sit(self):
'''模擬小狗坐下。'''
print(self.name.title() + ' is now sitting.')
def roll_over(self):
'''模擬小狗打滾。'''
print(self.name.title() + ' rolled over.')
# 構造乙個例項。
my_dog = dog('willie', 6) # python會自動呼叫dog.__init__(),self引數不用傳遞。
# 訪問例項的屬性。
print("my dog's name is " + my_dog.name.title() + ".")
print("my dog is " + str(my_dog.age) + " years old.")
# 呼叫方法。
my_dog.sit()
my_dog.roll_over()
class car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
print('this car has ' + str(self.odometer_reading) + ' miles.')
def update_odometer(self, mileage):
if mileage >= self.odometer_reading:
self.odometer_reading = mileage
else:
print("you can't roll back an odometer!")
def increment_odometer(self, miles):
self.odometer_reading += miles
my_car = car('audi', 'a4', 2016)
print(my_car.get_descriptive_name())
my_car.odometer_reading = 1000
my_car.read_odometer()
my_car.update_odometer(2000)
my_car.read_odometer()
# 注:可以直接訪問例項的屬性,也可以通過呼叫方法(__init__)實現屬性的讀寫。
# 但應盡量採取後者的方式,以實現物件的封裝(encapsulation)。
構造Python中的常量類
python中不存在像const那樣的常量關鍵字,只是在內建空間中提供了一小部分常量,比如true false none等。那麼在python中如何使用常量呢?一般來說有如下兩種方法 import const const.author test 將常量集中到乙個檔案 無論採用那種方式實現常量,都建議...
Python的類的定義和構造
在python中,所有的資料型別都被視為物件,也可以自定義物件,自定義物件資料型別就是物件導向中的類的概念。類 用來描述具有相同屬性和方法的物件的集合,類定義了集合中每個物件共有的屬性和方法。物件是類的例項。class myclass a example class x abc 類屬性 deffoo...
Python 構造通用任務父類
伺服器端常常需要啟動乙個程序,作為task處理任務,如果類似但任務類別較多,可以建立乙個task父類 import json import time import signal class task object running true interval time 10 def do task s...