日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python class类里给列表排序_python笔记:Class(类)

發布時間:2023/12/13 python 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python class类里给列表排序_python笔记:Class(类) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在學習python代碼中,你是否看到過Class這個詞?你是否見過__init__這樣的代碼?有的書里把這部分內容講的太過“專業”,導致我看了也看不懂。直到看Python Crash Course這本書關于這部分講解,才明白什么是Class。其實如果之前的function能理解的話,學習Class也不是非常難。這篇筆記就是記錄有關class的基礎結構和基本的使用(更多內容請閱讀該書第九章)

你可以使用“類”為任何東西建立模型。讓我們從編寫一個簡單的“類”開始,這個類的名字叫Dog,它表示一條狗——不是特定的一條狗,而是任意一條狗。對大多數寵物狗他們都有名字和年齡。我們還知道,大多數狗都會坐著和打滾。這兩條信息(name和age)和這兩種行為(sit和roll over)將在這個例子里,因為它們對大多數狗來說都很常見。這個類將告訴Python如何創建一個表示狗的對象。編寫完類之后,我們將使用它來創建單獨的實例(instance),每個實例代表一個特定的dog。

(一)創建一個class

從類創建的每個實例將存儲一個名稱name和一個年齡age,我們將給每只狗提供sit()和roll_over():

1) class Dog:

2) """A simple attempt to model a dog."""

3) def __init__(self, name, age):

"""Initialize name and age attributes."""

4) self.name = name

self.age = age

5) def sit(self):

"""Simulate a dog sitting in response to a command."""

print(f"{self.name} is now sitting.")

def roll_over(self):

"""Simulate rolling over in response to a command."""

print(f"{self.name} rolled over!")

在1)處,我們定義了一個名為Dog的類。按照慣例,大寫的名稱在Python中指代類。在類定義中沒有括號,因為我們是從頭創建這個類。在2)處,我們寫一個文檔字符串(docstring)來描述這個類做什么。

(1) __init__ ()方法

作為類的一部分的function就是方法(method)。你學過的function知識也適用于方法。目前唯一的實際區別是我們調用方法的方式。在3)處的__init__()方法是一個特殊的method,每當我們基于Dog類創建一個新實例時,Python都會自動運行該方法。這個方法有兩個前導下劃線和兩個后置下劃線,這個慣例有助于防止Python的默認方法名與method名沖突。請確保在__init__()的兩邊都使用兩個下劃線。我們定義__init__()方法有三個參數:self、name和age。self參數在方法定義中是必需的,而且它必須在其他參數之前出現。它必須包含在定義中,因為當Python在稍后調用該方法(創建Dog實例)時,將自動傳遞self參數。每個與實例關聯的方法調用都會自動傳遞self。當創建Dog的實例時,Python將從Dog類調用__init__()方法。將name和age作為參數傳遞給Dog(),self會自動傳遞,所以我們不需要傳遞它。每當我們想要從Dog類創建一個實例時,我們只需提供最后兩個參數的值,name和age。

在4)處定義的兩個變量都有前綴self。任何帶self前綴的變量都可以用于類中的每個方法,而且我們還能夠通過從類創建的任何實例訪問這些變量。self.name = name接受與參數名相關聯的值,并將其賦值給變量名,然后將變量名附加到正在創建的實例上。self.age = age也是一樣的。可以通過這樣的實例訪問的變量稱為屬性(attributes)。

在5)處,這個Dog類還定義了另外兩個方法:sit()和roll_over() 。因為這些方法不需要額外的信息來運行,所以我們定義它們只有一個參數self。我們稍后創建的實例能夠訪問這些方法。目前,sit()和roll_over()只是打印信息。但是這個概念可以擴展到現實情況:如果這個類是一個真實的電腦游戲的一部分,那么這些方法將包含讓動畫狗坐下和翻滾的代碼。

(二)從class里創建一個實例

可以將類看作是一組關于如何創建實例的指令。Dog類是一組指令,告訴Python如何創建代表特定狗的單個實例。

讓我們用一個實例來代表一只特定的狗(實際上就是指定參數的值,并且調用methods):

my_dog = Dog('Willie', 6)

print(f"My dog's name is {my_dog.name}.")

print(f"My dog is {my_dog.age} years old.")

我們在這里使用的Dog類是我們在上面剛剛編寫的類(class)。這里,我們告訴python創建一只名叫“Willie”的6歲狗。當Python讀取這一行時,它調用Dog中的__init__()方法,參數為'Willie'和6。__init__()方法創建一個表示這只特定狗的實例,并使用我們提供的值設置name和age屬性。然后Python返回一個表示這條狗的實例。我們將該實例賦值給變量my_dog。這里的命名的慣例很有幫助:我們通常可以假設大寫的名字(如Dog)指的是一個類,小寫的名字(如my_dog)指的是從一個類創建的單個實例。

運行后的結果:

My dog's name is Willie.

My dog is 6 years old.

(1)訪問attributes

如果你要訪問一個實例里的attributes,在上面的例子里就是name 和age:

my_dog.name

得到的結果是:

'Willie'

點符號在Python中經常使用。這個語法演示了Python如何查找屬性的值。在這里,Python查看my_dog實例,然后找到與my_dog相關聯的屬性名。這個屬性與Dog類中的self.name相同。

(2)調用methods

在創建了一個實例后,我們可以使用點符號來調用Dog類里的任何methods:

my_dog.sit()

my_dog.roll_over()

要調用一個方法,請給出實例的名稱(在本例中為my_dog)和你想要調用的方法,并用點分隔。當Python讀取my_dog.sit()時,它在Dog類中尋找sit()方法并運行該代碼。Python以同樣的方式解釋my_dog.roll_over()行。

所以運行后的結果是:

Willie is now sitting.

Willie rolled over!

總結

以上是生活随笔為你收集整理的python class类里给列表排序_python笔记:Class(类)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。