欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python類和對象基礎入門介紹

 更新時間:2022年08月05日 14:45:57   作者:acktomas  
Python 是一種面向?qū)ο蟮木幊陶Z言。Python 中的幾乎所有東西都是對象,擁有屬性和方法。類(Class)類似對象構(gòu)造函數(shù),或者是用于創(chuàng)建對象的藍圖

視頻

觀看視頻

Python 類和對象

面向?qū)ο缶幊淌蔷帉懕硎粳F(xiàn)實世界中的事物和情景的類,并基于這些類來創(chuàng)建對象。

編寫類時,你定義一大類對象都有的通用行為。基于類創(chuàng)建對象時,每個對象都自動具備這種通用行為,然后可根據(jù)需要賦予每個對象獨特的個性。使用面向?qū)ο缶幊炭赡M現(xiàn)實情景,其逼真程度達到了令你驚訝的地步。

根據(jù)類來創(chuàng)建對象被稱為實例化,這是能夠使用類的實例。

面向?qū)ο笞钪匾母拍罹褪穷悾–lass)和實例(Instance),必須牢記類是抽象的模板,比如Dog類,而實例是根據(jù)類創(chuàng)建出來的一個個具體的“對象”,每個對象都擁有相同的方法,但各自的數(shù)據(jù)可能不同。

創(chuàng)建和使用類

Python定義類是通過class關(guān)鍵字:

class Dog(object): # 若不提供object,默認的也是object
    pass

class后面跟著類名,即Dog,類名通常首字母大寫,(object)表示該類是從哪個類繼承下來的,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類。

可以創(chuàng)建Dog類的實例,創(chuàng)建實例是通過類名+()實現(xiàn)的:

>>> bart = Dog()
>>> bart
<__main__.Dog object at 0x10a67a590>
>>> Dog
<class '__main__.Dog'>

變量bart指向的是一個Dog的實例,后面的0x10a67a590是內(nèi)存地址,每個object的地址都不一樣,Dog是一個類。

假設Dog類創(chuàng)建的每個實例都將存儲名字和年齡。賦予每條小狗蹲下sit()和打滾roll_over()的能力:

dog.py

class Dog():
    """一次模擬小狗的簡單嘗試""" 
    def __init__(self, name, age): 
    	"""初始化屬性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!") 

第1行:定義了一個名為Dog的類。根據(jù)約定,在Python中,首字母大寫的名稱指的是類。這個類定義中的括號是空的,因為要從空白創(chuàng)建這個類。

第2行:編寫了一個文檔字符串,對這個類的功能作了描述。

方法__init__()

類中的函數(shù)稱為方法;有關(guān)函數(shù)的一切都適用于方法,就目前而言,唯一重要的差別是調(diào)用方法的方式。

第3行:方法__init__()是一個特殊的方法,每當你根據(jù)Dog類創(chuàng)建新實例時,Python都會自動運行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免Python默認方法與普通方法發(fā)生名稱沖突。

將方法__init__()定義成了包含三個形參:self、name和age。在這個方法的定義中,形參self必不可少,還必須位于其他形參的前面。為何必須在方法定義中包含形參self呢?因為,Python調(diào)用這個__init__()方法來創(chuàng)建Dog實例時,將自動傳入實參self。每個與類相關(guān)聯(lián)的方法調(diào)用都自動傳遞實參self,它是一個指向?qū)嵗旧淼囊?,讓實例能夠訪問類中的屬性和方法。

創(chuàng)建Dog實例時,Python將調(diào)用Dog類的方法__init__()。將通過實參向Dog()傳遞名字和年齡;self會自動傳遞,因此不需要傳遞它。每當根據(jù)Dog類創(chuàng)建實例時,都只需給最后兩個形參(name和age)提供值。

第5、6行:定義的兩個變量都有前綴self。以self為前綴的變量都可供類中的所有方法使用,還可以通過類的任何實例來訪問這些變量。self.name = name獲取存儲在形參name中的值,并將其存儲到變量name中,然后該變量被關(guān)聯(lián)到當前創(chuàng)建的實例。self.age = age的作用與此類似。

像這樣可通過實例訪問的變量稱為屬性。

Dog類還定義了另外兩個方法:sit()和roll_over()。由于這些方法不需要額外的信息,如名字或年齡,因此它們只有一個形參self。后面將創(chuàng)建的實例能夠訪問這些方法,換句話說,它們都會蹲下和打滾。

根據(jù)類創(chuàng)建實例

可將類視為有關(guān)如何創(chuàng)建實例的說明。Dog類是一系列說明,讓Python知道如何創(chuàng)建表示特定小狗的實例。

下面來創(chuàng)建一個表示特定小狗的實例:

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

第1行:讓Python創(chuàng)建一條名字為’willie’、年齡為6的小狗。遇到這行代碼時,Python使用實參’willie’和6調(diào)用Dog類中的方法__init__()。

方法__init__()創(chuàng)建一個表示特定小狗的示例,并使用提供的值來設置屬性name和age。方法__init__()并未顯式地包含return語句,但Python自動返回一個表示這條小狗的實例。將這

個實例存儲在變量my_dog中。在這里,命名約定很有用:通??梢哉J為首字母大寫的名稱指的是類,而小寫的名稱指的是根據(jù)類創(chuàng)建的實例。

訪問屬性

要訪問實例的屬性,可使用句點表示法。

第2行:編寫了如下代碼來訪問my_dog的屬性name的值:

my_dog.name

句點表示法在Python中很常用,這種語法演示了Python如何獲悉屬性的值。在這里,Python先找到實例my_dog,再查找與這個實例相關(guān)聯(lián)的屬性name。在Dog類中引用這個屬性時,使用的是self.name。在前面的第1條print語句中,my_dog.name.title()將my_dog的屬性name的值’willie’改為首字母大寫的;在第2條print語句中,str(my_dog.age)將my_dog的屬性age的值6轉(zhuǎn)換為字符串。

輸出是有關(guān)my_dog的摘要:

My dog’s name is Willie.

My dog is 6 years old.

調(diào)用方法

根據(jù)Dog類創(chuàng)建實例后,就可以使用句點表示法來調(diào)用Dog類中定義的任何方法。下面來讓小狗蹲下和打滾:

my_dog = Dog('willie', 6) 
my_dog.sit() 
my_dog.roll_over() 

要調(diào)用方法,可指定實例的名稱和要調(diào)用的方法,并用句點分隔它們。遇到代碼my_dog.sit()時,Python在類Dog中查找方法sit()并運行其代碼。

Willie按的命令做了:

Willie is now sitting.

Willie rolled over!

這種語法很有用。如果給屬性和方法指定了合適的描述性名稱,如name、age、sit()和roll_over(),即便是從未見過的代碼塊,也能夠輕松地推斷出它是做什么的。

創(chuàng)建多個實例

可按需求根據(jù)類創(chuàng)建任意數(shù)量的實例。下面再創(chuàng)建一個名為your_dog的實例:

my_dog = Dog('willie', 6) 
your_dog = Dog('lucy', 3) 
print("My dog's name is " + my_dog.name.title() + ".") 
print("My dog is " + str(my_dog.age) + " years old.") 
my_dog.sit() 
print("\nYour dog's name is " + your_dog.name.title() + ".") 
print("Your dog is " + str(your_dog.age) + " years old.") 
your_dog.sit() 

在這個實例中,創(chuàng)建了兩條小狗,它們分別名為Willie和Lucy。每條小狗都是一個獨立

的實例,有自己的一組屬性,能夠執(zhí)行相同的操作:

My dog’s name is Willie.

My dog is 6 years old.

Willie is now sitting.

Your dog’s name is Lucy.

Your dog is 3 years old.

Lucy is now sitting.

就算給第二條小狗指定同樣的名字和年齡,Python依然會根據(jù)Dog類創(chuàng)建另一個實例。

你可按需求根據(jù)一個類創(chuàng)建任意數(shù)量的實例,條件是將每個實例都存儲在不同的變量中,或占用列表或字典的不同位置。

到此這篇關(guān)于Python類和對象基礎入門介紹的文章就介紹到這了,更多相關(guān)Python類與對象內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 如何更改 pandas dataframe 中兩列的位置

    如何更改 pandas dataframe 中兩列的位置

    如何更改 pandas dataframe 中兩列的位置?今天小編就為大家介紹兩種操作方法,希望對大家有所幫助,還等什么?一起跟隨小編過來看看吧
    2019-12-12
  • 如何基于Python深度圖生成3D點云詳解

    如何基于Python深度圖生成3D點云詳解

    通常使用TOF等3d攝像頭采集的格式一般只是深度圖,下面這篇文章主要給大家介紹了關(guān)于如何基于Python深度圖生成3D點云的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • Python 中面向接口編程詳情

    Python 中面向接口編程詳情

    這篇文章主要介紹了Python 中面向接口編程詳情,Python 中的接口與大多數(shù)其它語言的處理方式不同,它們的設計復雜性也不同,關(guān)于Python 接口編程的介紹,需要的小伙伴可以參考下面文章內(nèi)容
    2022-05-05
  • python中的 zip函數(shù)詳解及用法舉例

    python中的 zip函數(shù)詳解及用法舉例

    zip()是Python的一個內(nèi)建函數(shù),它接受一系列可迭代的對象作為參數(shù),將對象中對應的元素打包成一個個tuple(元組),然后返回由這些tuples組成的list(列表)。這篇文章主要介紹了python中的 zip函數(shù)詳解及用法舉例,需要的朋友可以參考下
    2020-02-02
  • 一文速學Python+Pyecharts繪制樹形圖

    一文速學Python+Pyecharts繪制樹形圖

    比起matplotlib,pyeacharts的圖表要豐富而且好看,而且pyechart文檔全,便于開發(fā)和閱讀文檔,熟練掌握后是一種非常好用的數(shù)據(jù)可視化的工具之一。本文就來用Pyecharts繪制樹形圖,快跟隨小編一起學習一下吧
    2023-02-02
  • Tensorflow卷積實現(xiàn)原理+手寫python代碼實現(xiàn)卷積教程

    Tensorflow卷積實現(xiàn)原理+手寫python代碼實現(xiàn)卷積教程

    這篇文章主要介紹了Tensorflow卷積實現(xiàn)原理+手寫python代碼實現(xiàn)卷積教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python調(diào)用機器喇叭發(fā)出蜂鳴聲(Beep)的方法

    python調(diào)用機器喇叭發(fā)出蜂鳴聲(Beep)的方法

    這篇文章主要介紹了python調(diào)用機器喇叭發(fā)出蜂鳴聲(Beep)的方法,實例分析了Python調(diào)用winsound模塊的使用技巧,需要的朋友可以參考下
    2015-03-03
  • 使用Python開發(fā)個京東上搶口罩的小實例(僅作技術(shù)研究學習使用)

    使用Python開發(fā)個京東上搶口罩的小實例(僅作技術(shù)研究學習使用)

    這篇文章主要介紹了使用Python開發(fā)個京東上搶口罩的小實例(僅作技術(shù)研究學習使用),需要的朋友可以參考下
    2020-03-03
  • python實現(xiàn)歸并排序算法

    python實現(xiàn)歸并排序算法

    這篇文章主要為大家詳細介紹了Python實現(xiàn)歸并排序算法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python爬蟲獲取整個站點中的所有外部鏈接代碼示例

    Python爬蟲獲取整個站點中的所有外部鏈接代碼示例

    這篇文章主要介紹了Python爬蟲獲取整個站點中的所有外部鏈接代碼示例,具有一定借鑒價值,需要的朋友可以參考下
    2017-12-12

最新評論