Python 類的構造

2021-10-10 18:26:08 字數 1948 閱讀 3656

# 定義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...