最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python類和對(duì)象基礎(chǔ)入門(mén)介紹

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

視頻

觀看視頻

Python 類和對(duì)象

面向?qū)ο缶幊淌蔷帉?xiě)表示現(xiàn)實(shí)世界中的事物和情景的類,并基于這些類來(lái)創(chuàng)建對(duì)象。

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

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

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

創(chuàng)建和使用類

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

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

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

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

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

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

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

dog.py

class Dog():
    """一次模擬小狗的簡(jiǎn)單嘗試""" 
    def __init__(self, name, age): 
    	"""初始化屬性name和age""" 
    	self.name = name 
    	self.age = age 
    def sit(self): 
        """模擬小狗被命令時(shí)蹲下""" 
     	print(self.name.title() + " is now sitting.") 
    def roll_over(self): 
		"""模擬小狗被命令時(shí)打滾""" 
		print(self.name.title() + " rolled over!") 

第1行:定義了一個(gè)名為Dog的類。根據(jù)約定,在Python中,首字母大寫(xiě)的名稱指的是類。這個(gè)類定義中的括號(hào)是空的,因?yàn)橐獜目瞻讋?chuàng)建這個(gè)類。

第2行:編寫(xiě)了一個(gè)文檔字符串,對(duì)這個(gè)類的功能作了描述。

方法__init__()

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

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

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

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

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

像這樣可通過(guò)實(shí)例訪問(wèn)的變量稱為屬性。

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

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

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

下面來(lái)創(chuàng)建一個(gè)表示特定小狗的實(shí)例:

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的小狗。遇到這行代碼時(shí),Python使用實(shí)參’willie’和6調(diào)用Dog類中的方法__init__()。

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

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

訪問(wèn)屬性

要訪問(wèn)實(shí)例的屬性,可使用句點(diǎn)表示法。

第2行:編寫(xiě)了如下代碼來(lái)訪問(wèn)my_dog的屬性name的值:

my_dog.name

句點(diǎn)表示法在Python中很常用,這種語(yǔ)法演示了Python如何獲悉屬性的值。在這里,Python先找到實(shí)例my_dog,再查找與這個(gè)實(shí)例相關(guān)聯(lián)的屬性name。在Dog類中引用這個(gè)屬性時(shí),使用的是self.name。在前面的第1條print語(yǔ)句中,my_dog.name.title()將my_dog的屬性name的值’willie’改為首字母大寫(xiě)的;在第2條print語(yǔ)句中,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)建實(shí)例后,就可以使用句點(diǎn)表示法來(lái)調(diào)用Dog類中定義的任何方法。下面來(lái)讓小狗蹲下和打滾:

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

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

Willie按的命令做了:

Willie is now sitting.

Willie rolled over!

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

創(chuàng)建多個(gè)實(shí)例

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

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

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

的實(shí)例,有自己的一組屬性,能夠執(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依然會(huì)根據(jù)Dog類創(chuàng)建另一個(gè)實(shí)例。

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

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

相關(guān)文章

  • python openpyxl打開(kāi)文件關(guān)閉問(wèn)題

    python openpyxl打開(kāi)文件關(guān)閉問(wèn)題

    這篇文章主要介紹了python openpyxl打開(kāi)文件關(guān)閉問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Python django框架輸入漢字,數(shù)字,字符生成二維碼實(shí)現(xiàn)詳解

    Python django框架輸入漢字,數(shù)字,字符生成二維碼實(shí)現(xiàn)詳解

    這篇文章主要介紹了Python django框架輸入漢字,數(shù)字,字符轉(zhuǎn)成二維碼實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • 基于python調(diào)用jenkins-cli實(shí)現(xiàn)快速發(fā)布

    基于python調(diào)用jenkins-cli實(shí)現(xiàn)快速發(fā)布

    這篇文章主要介紹了基于python調(diào)用jenkins-cli實(shí)現(xiàn)快速發(fā)布,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python tkinter 設(shè)置窗口大小不可縮放實(shí)例

    python tkinter 設(shè)置窗口大小不可縮放實(shí)例

    這篇文章主要介紹了python tkinter 設(shè)置窗口大小不可縮放實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • python pandas dataframe 按列或者按行合并的方法

    python pandas dataframe 按列或者按行合并的方法

    下面小編就為大家分享一篇python pandas dataframe 按列或者按行合并的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • numpy如何刪除矩陣中的部分?jǐn)?shù)據(jù)numpy.delete

    numpy如何刪除矩陣中的部分?jǐn)?shù)據(jù)numpy.delete

    這篇文章主要介紹了numpy如何刪除矩陣中的部分?jǐn)?shù)據(jù)numpy.delete問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 一個(gè)基于flask的web應(yīng)用誕生 bootstrap框架美化(3)

    一個(gè)基于flask的web應(yīng)用誕生 bootstrap框架美化(3)

    一個(gè)基于flask的web應(yīng)用誕生第三篇,這篇文章主要介紹了前端框架bootstrap與flask框架進(jìn)行整合,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 利用python為運(yùn)維人員寫(xiě)一個(gè)監(jiān)控腳本

    利用python為運(yùn)維人員寫(xiě)一個(gè)監(jiān)控腳本

    近來(lái)在學(xué)習(xí)用Python進(jìn)行一些電腦運(yùn)維的工作。所以下面這篇文章主要給大家介紹了關(guān)于利用python為運(yùn)維人員寫(xiě)一個(gè)監(jiān)控腳本的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Python?運(yùn)行?shell?命令的方法匯總

    Python?運(yùn)行?shell?命令的方法匯總

    這篇文章主要介紹了Python運(yùn)行shell命令的一些方法,我們來(lái)看一下 python 中有哪些自帶模塊或者方法可以實(shí)現(xiàn),對(duì)Python運(yùn)行shell命令感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • python IP地址轉(zhuǎn)整數(shù)

    python IP地址轉(zhuǎn)整數(shù)

    這篇文章主要介紹了python 如何將IP 地址轉(zhuǎn)整數(shù),幫助大家了解轉(zhuǎn)換的原理與收益,更好的理解python,感興趣的朋友可以了解下
    2020-11-11

最新評(píng)論

孝昌县| 措勤县| 湘潭县| 张家川| 锦屏县| 济宁市| 开原市| 固始县| 乐都县| 金溪县| 丰顺县| 永宁县| 晋城| 仁怀市| 宁海县| 东乡县| 彭州市| 通海县| 湘西| 九台市| 乌兰察布市| 娄底市| 竹山县| 团风县| 枞阳县| 屏南县| 武穴市| 襄汾县| 油尖旺区| 当阳市| 无锡市| 五台县| 永寿县| 闽清县| 昭苏县| 潮安县| 新巴尔虎左旗| 沙河市| 黑水县| 通化市| 綦江县|