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

如何理解python面向?qū)ο缶幊?/h1>
 更新時(shí)間:2020年06月01日 16:02:13   作者:silencement  
在本篇文章里小編給大家整理的是關(guān)于如何理解python面向?qū)ο缶幊痰南嚓P(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。

類(lèi)是面向?qū)ο蟪绦蛟O(shè)計(jì)的一部分。面向?qū)ο蟪绦蛟O(shè)計(jì)或者簡(jiǎn)稱(chēng)為 OOP 致力于創(chuàng)建可重用代碼塊稱(chēng)之為類(lèi)。當(dāng)你想在你的程序中使用類(lèi)時(shí),你會(huì)從類(lèi)中創(chuàng)建一個(gè)對(duì)象,這也是面向?qū)ο笠辉~的由來(lái)。Python 并不總是面向?qū)ο蟮?,但是你?huì)在你的項(xiàng)目中用到對(duì)象。為了理解類(lèi),你需要理解面向?qū)ο蟮囊恍┗A(chǔ)術(shù)語(yǔ)。

常用術(shù)語(yǔ)

class:類(lèi)。類(lèi)是代碼塊的主體,其中定義了建立的模型的屬性和行為。這個(gè)模型可以來(lái)自于真實(shí)世界,也可以是虛擬游戲等。

attribute:屬性。是一系列信息的集合。在類(lèi)中,一個(gè)屬性通常是一個(gè)變量。

behavior:行為。行為是定義在類(lèi)中,組成方法的部分。也即是定義在類(lèi)中函數(shù)的一部分。

method:方法。類(lèi)中的函數(shù),由 behavior 組成。

object:對(duì)象。對(duì)象是類(lèi)的實(shí)例。一個(gè)對(duì)象中包含所有類(lèi)中屬性的值。你可以為一個(gè)類(lèi)創(chuàng)建任意數(shù)量的對(duì)象。

近距離觀察 Rocket 類(lèi)

我們已經(jīng)了解到一些類(lèi)的基本術(shù)語(yǔ),讓我們回頭再分析一下上節(jié)提到的 Rocket 類(lèi)。

__init__() 方法

定義一個(gè)初始代碼塊,如下所示:

class Rocket():
  # Rocket simulates a rocket ship for a game,
  # or a physics simulation.
  
  def __init__(self):
    # Each rocket has an (x,y) position.
    self.x = 0
    self.y = 0

第一行展示了類(lèi)是如何創(chuàng)建的。關(guān)鍵字 class 告訴 Python 準(zhǔn)備定義一個(gè)類(lèi)。類(lèi)名的命名規(guī)則和變量的相同,但是 Python 中有一個(gè)約定好的規(guī)則,類(lèi)名必須是駝峰式的。也即每個(gè)單詞的開(kāi)頭必須是大寫(xiě)的,不允許下劃線(xiàn)的出現(xiàn)。類(lèi)名后緊跟一對(duì)圓括號(hào),目前為止圓括號(hào)里都是空的,接下來(lái)的學(xué)習(xí)中,其中可能會(huì)包含一個(gè)類(lèi)。這個(gè)類(lèi)是新類(lèi)基于的類(lèi)。

前后都有兩個(gè)下劃線(xiàn)的函數(shù)是內(nèi)置在 Python 中的有特殊用途的函數(shù)。__init__() 函數(shù)就是一個(gè)特殊的函數(shù)。當(dāng)創(chuàng)建一個(gè)類(lèi)的對(duì)象時(shí),它會(huì)自動(dòng)執(zhí)行。我們可以稱(chēng)之為初始化函數(shù),在對(duì)象使用之前初始化一些必要的屬性。在這個(gè)例子中,__init__() 函數(shù)初始化了 x 和 y 屬性。

關(guān)鍵字 self 可能會(huì)有些難以理解。單詞 "self" 指向當(dāng)前的對(duì)象。當(dāng)你創(chuàng)建一個(gè)類(lèi)時(shí),它可以訪(fǎng)問(wèn)到類(lèi)中的任意指定屬性?;旧?,類(lèi)中所有的函數(shù)都需要 self 對(duì)象作為第一個(gè)參數(shù),因此它們就可以訪(fǎng)問(wèn)類(lèi)中的屬性。

現(xiàn)在,讓我們看看類(lèi)中的方法吧!

一個(gè)簡(jiǎn)單的方法

下述代碼在 Rocket 類(lèi)中定義了一個(gè)方法。

class Rocket():
  # Rocket simulates a rocket ship for a game,
  # or a physics simulation.
  
  def __init__(self):
    # Each rocket has an (x,y) position.
    self.x = 0
    self.y = 0
    
  def move_up(self):
    # Increment the y-position of the rocket.
    self.y += 1

方法就是類(lèi)中的函數(shù)。因此你可以在方法中做任何函數(shù)能做的事。

默認(rèn)情況下,每個(gè)函數(shù)都需要接受一個(gè)參數(shù):self 。它是對(duì)調(diào)用這個(gè)方法的對(duì)象的引用。self 參數(shù)能讓你訪(fǎng)問(wèn)到調(diào)用對(duì)象的屬性。在這個(gè)例子中,self 用來(lái)訪(fǎng)問(wèn) Rocket 對(duì)象的 y 屬性。這個(gè)方法被調(diào)用一次,對(duì)象的 y 屬性就增加1。為了更近一步了解方法的運(yùn)行過(guò)程,仔細(xì)閱讀下述代碼,并觀察它們的輸出。

class Rocket():
  # Rocket simulates a rocket ship for a game,
  # or a physics simulation.
  
  def __init__(self):
    # Each rocket has an (x,y) position.
    self.x = 0
    self.y = 0
    
  def move_up(self):
    # Increment the y-position of the rocket.
    self.y += 1

# Create a Rocket object, and have it start to move up.
my_rocket = Rocket()
print("Rocket altitude:", my_rocket.y)

my_rocket.move_up()
print("Rocket altitude:", my_rocket.y)

創(chuàng)建多個(gè)對(duì)象

面向?qū)ο缶幊桃粋€(gè)重要目標(biāo)是創(chuàng)建可重用代碼。一旦你寫(xiě)好了類(lèi),就能創(chuàng)建任意數(shù)量的對(duì)象。通常,類(lèi)被放進(jìn)一個(gè)單獨(dú)的文件中,在需要的時(shí)候?qū)氤绦蛑?。因此你可以?chuàng)建一個(gè)類(lèi)庫(kù),在不同的程序中重復(fù)使用這些類(lèi)。

在一個(gè)類(lèi)上創(chuàng)建多個(gè)對(duì)象,示例如下:

class Rocket():
     # Rocket simulates a rocket ship for a game,# Rocket 
  # or a physics simulation.
  
  def __init__(self):
    # Each rocket has an (x,y) position.
    self.x = 0
    self.y = 0
    
  def move_up(self):
    # Increment the y-position of the rocket.
    self.y += 1
    
# Create a fleet of 5 rockets, and store them in a list.
my_rockets = []
for x in range(0,5):
  new_rocket = Rocket()
  my_rockets.append(new_rocket)

# Show that each rocket is a separate object.
for rocket in my_rockets:
  print(rocket)

內(nèi)容擴(kuò)展:

初識(shí)類(lèi)和對(duì)象

python中一切皆為對(duì)象,類(lèi)型的本質(zhì)就是類(lèi),所以,不管你信不信,你已經(jīng)使用了很長(zhǎng)時(shí)間的類(lèi)了

>>> dict #類(lèi)型dict就是類(lèi)dict
<class 'dict'>
>>> d=dict(name='eva') #實(shí)例化
>>> d.pop('name') #向d發(fā)一條消息,執(zhí)行d的方法pop
'eva'

從上面的例子來(lái)看,字典就是一類(lèi)數(shù)據(jù)結(jié)構(gòu),我一說(shuō)字典你就知道是那個(gè)用{}表示,里面由k-v鍵值對(duì)的東西,它還具有一些增刪改查的方法。但是我一說(shuō)字典你能知道字典里具體存了哪些內(nèi)容么?不能,所以我們說(shuō)對(duì)于一個(gè)類(lèi)來(lái)說(shuō),它具有相同的特征屬性和方法。

而具體的{'name':'eva'}這個(gè)字典,它是一個(gè)字典,可以使用字典的所有方法,并且里面有了具體的值,它就是字典的一個(gè)對(duì)象。對(duì)象就是已經(jīng)實(shí)實(shí)在在存在的某一個(gè)具體的個(gè)體。

再舉一個(gè)其他的例子,通俗一點(diǎn),比如你現(xiàn)在有一個(gè)動(dòng)物園,你想描述這個(gè)動(dòng)物園,那么動(dòng)物園里的每一種動(dòng)物就是一個(gè)類(lèi),老虎、天鵝、鱷魚(yú)、熊。他們都有相同的屬性,比如身高體重出生時(shí)間和品種,還有各種動(dòng)作,比如鱷魚(yú)會(huì)游泳,天鵝會(huì)飛,老虎會(huì)跑,熊會(huì)吃。

但是這些老虎熊啥的都不是具體的某一只,而是一類(lèi)動(dòng)物。雖然他們都有身高體重,但是你卻沒(méi)有辦法確定這個(gè)值是多少。如果這個(gè)時(shí)候給你一只具體的老虎,而你還沒(méi)死,那你就能給他量量身高稱(chēng)稱(chēng)體重,這些數(shù)值是不是就變成具體的了?那么具體的這一只老虎就是一個(gè)具體的實(shí)例,也是一個(gè)對(duì)象。不止這一只,其實(shí)每一只具體的老虎都有自己的身高體重,那么每一只老虎都是老虎類(lèi)的一個(gè)對(duì)象。

到此這篇關(guān)于如何理解python面向?qū)ο缶幊痰奈恼戮徒榻B到這了,更多相關(guān)python面向?qū)ο缶幊淘斀鈨?nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 安裝PyInstaller失敗問(wèn)題解決

    安裝PyInstaller失敗問(wèn)題解決

    這篇文章主要介紹了安裝PyInstaller失敗問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Python3爬蟲(chóng)里關(guān)于Splash負(fù)載均衡配置詳解

    Python3爬蟲(chóng)里關(guān)于Splash負(fù)載均衡配置詳解

    在本篇文章里小編給大家分享了關(guān)于Python3爬蟲(chóng)里關(guān)于Splash負(fù)載均衡配置的相關(guān)內(nèi)容,需要的朋友們可以學(xué)習(xí)參考下。
    2020-07-07
  • Python實(shí)現(xiàn)自定義函數(shù)的5種常見(jiàn)形式分析

    Python實(shí)現(xiàn)自定義函數(shù)的5種常見(jiàn)形式分析

    這篇文章主要介紹了Python實(shí)現(xiàn)自定義函數(shù)的5種常見(jiàn)形式,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python自定義函數(shù)相關(guān)的參數(shù)、默認(rèn)值、隱函數(shù)等相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-06-06
  • Python 如何實(shí)時(shí)向文件寫(xiě)入數(shù)據(jù)(附代碼)

    Python 如何實(shí)時(shí)向文件寫(xiě)入數(shù)據(jù)(附代碼)

    這篇文章主要介紹了Python 如何實(shí)時(shí)向文件寫(xiě)入數(shù)據(jù)(附代碼),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • pandas如何獲取某個(gè)數(shù)據(jù)的行號(hào)

    pandas如何獲取某個(gè)數(shù)據(jù)的行號(hào)

    這篇文章主要介紹了pandas如何獲取某個(gè)數(shù)據(jù)的行號(hào)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • Python?opencv進(jìn)行圓形識(shí)別(圓檢測(cè))實(shí)例代碼

    Python?opencv進(jìn)行圓形識(shí)別(圓檢測(cè))實(shí)例代碼

    最近工作的項(xiàng)目上需要檢測(cè)圖像中是否有圓形,下面這篇文章主要給大家介紹了關(guān)于Python?opencv進(jìn)行圓形識(shí)別(圓檢測(cè))的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • Python中win32com模塊的使用

    Python中win32com模塊的使用

    本文主要介紹了Python中win32com模塊的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • Python IDLE 錯(cuò)誤:IDLE''''s subprocess didn''''t make connection 的解決方案

    Python IDLE 錯(cuò)誤:IDLE''''s subprocess didn''''t make connectio

    這篇文章主要介紹了Python IDLE 錯(cuò)誤:IDLE's subprocess didn't make connection 的解決方案的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • python 阿里云oss實(shí)現(xiàn)直傳簽名與回調(diào)驗(yàn)證的示例方法

    python 阿里云oss實(shí)現(xiàn)直傳簽名與回調(diào)驗(yàn)證的示例方法

    這篇文章主要介紹了python 阿里云oss實(shí)現(xiàn)直傳簽名與回調(diào)驗(yàn)證,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • python的pygal模塊繪制反正切函數(shù)圖像方法

    python的pygal模塊繪制反正切函數(shù)圖像方法

    在本篇文章中我們給大家整理了關(guān)于如何用python的pygal模塊繪制反正切函數(shù)圖像的知識(shí)點(diǎn)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2019-07-07

最新評(píng)論