Python 學習入門之類

2021-09-09 02:27:30 字數 2990 閱讀 7637

物件導向程式設計是最有效的軟體編寫方法之一。在物件導向程式設計中,編寫表示現實世界中的事物和情景的類,並基於這些類來建立物件。

類的簡單示例

class dog():

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() + " roll over.")

類中的函式稱為方法,有關函式的一切都適用於方法,唯一重要的差別是呼叫方法的方式

其中__init__()是乙個特殊的方法,每當根據類建立新例項時,python都會自動執行他。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免python預設方法與普通方法發生名稱衝突

類中每個屬性都要必須有初始值,若要給屬性指定預設值,可在__init__()指定初始值,且無需給它提供初始值的形參

我們建立dog例項時,python將呼叫dog類方法__init__()。我們將通過實參向dog()傳遞名字和年齡;self會自動傳遞,因此我們不需要傳遞它。每當我們根據dog類建立例項時,都只需給最後兩個形參提供值

在python2.7 中建立類時,需要做細微的修改————在括號內包含單詞object

class classname(object):

--snip--

可將類視為有關如何建立例項的說明。

my_dog = dog("willie",6)
訪問屬性

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

直接修改屬性的值

my_dog.age = 7

print("my dog is " + str(my_dog.age) + " years old")

通過方法修改屬性的值

class car():

def __init__(self,make,model,year):

self.make = make

self. model =model

self.year= year

self.odometer_reading = 0

def update_odometer (self,mileage):

self.odometer_reading = mileage

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 on it.")

my_car = car("audi","a6",2016)

print(my_car.get_descriptive_name())

my_car.update_odometer(23)

my_car.read_odometer()

乙個類繼承另乙個類時,它將自動獲得另乙個類的所有屬性和方法;原有的類稱為父類,而新類稱為子類。

子類繼承了其父類所有屬性和方法,同時還可以定義自己的屬性和方法

建立子類的例項時,,python首先需要完成的任務是給父類的所有的屬性賦值。為此,子類方法__init__()需要父類施以緩手

class electriccar(car):

def __init__(self,make,model,year):

super().__init__(make,model,year)

my_tesla = electriccar("tesla","modle s",2018)

print(my_tesla.get_descriptive_name())

class electriccar(car):

def __init__(self,make,model,year):

super(electriccar,self).__init__(make,model,year)

讓乙個類繼承另乙個類後,可新增區分父類所需的新屬性和方法

class electriccar(car):

def __init__(self,make,model,year):

super().__init__(make,model,year)

self.battery_size = 70

def decribe_battery(self):

print("this car has a " + str(self.battery_size) + "-kwh battery.")

my_tesla = electriccar("tesla","modle s",2018)

print(my_tesla.get_descriptive_name())

my_tesla.decribe_battery()

對於父類地方法,只要它不符合子類模擬的實物的行為,都可以對其進行重寫。為此,可在子類中定義乙個這樣的方法,即它與要重寫的父類的方法同名。

這樣,python將不會這個父類方法,而關注你在子類中定義的相應方法

python入門基礎之 類

小白自用筆記,如有錯誤還請指正 類 屬性 方法 類的名稱開頭字母要大寫如 point emailclient。且沒有下劃線 屬性分為類屬性和例項屬性 簡單的說 類屬性 是在類中直接寫的屬性,例項屬性 指在類外重寫的屬性。方法相當於類中的函式 詳見以下示例 class point x 2 類屬性 y ...

Python 入門之類的繼承

from animalstest import animals 請在下面填入定義fish類的 fish類繼承自animals類 begin class fish animals end def init self,name self.name name defswim self print s會游泳...

python入門之類的繼承

類的繼承 1 定義類的繼承 首先我們來看下類的繼承的基本語法 class classname baseclassname 1 定義類的繼承 首先我們來看下類的繼承的基本語法 class classname baseclassname 在定義類的時候,可以在括號裡寫繼承的類,一開始也提到過,如果不用繼...