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

Python面向?qū)ο笾惡蛯?shí)例用法分析

 更新時(shí)間:2019年06月08日 09:31:22   作者:feesland  
這篇文章主要介紹了Python類和實(shí)例用法,較為詳細(xì)的分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類、實(shí)例、構(gòu)造函數(shù)、析構(gòu)函數(shù)、私有變量等相關(guān)概念與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Python面向?qū)ο笾惡蛯?shí)例用法。分享給大家供大家參考,具體如下:

雖然 Python 是解釋性語言,但是它是面向?qū)ο蟮?,能夠進(jìn)行對象編程。至于何為面向?qū)ο?,在此就不詳說了。面向?qū)ο蟪绦蛟O(shè)計(jì)本身就很值得深入學(xué)習(xí),如要了解,請參閱網(wǎng)上其他的資料。

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

以Student類為例,在Python中,定義類是通過 class 關(guān)鍵字:

注意:Python 2.X 需要在類名后面加 (object)  這邊 pass 語句表示空語句段。

class 后面緊接著是類名,即Student,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個(gè)類繼承下來的,繼承的概念我們后面再講,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會(huì)繼承的類。

class Student(object):
  pass

Python 3.X 則只需要類名,不需要加 (object)

class Student:
  pass

實(shí)例

創(chuàng)建實(shí)例是通過類名+()實(shí)現(xiàn)的(若 __init__ 無或僅有self);如定義好了Student類,就可以根據(jù)Student類創(chuàng)建出Student的實(shí)例,如下:

class Student(object):
  pass
May = Student()          # 新建May實(shí)例
print(May)

運(yùn)行結(jié)果:

<__main__.Student object at 0x0000000001DCC400>

可以看到,變量May指向的就是一個(gè)Student的object,后面的0x006C4770是內(nèi)存地址,每個(gè)object的地址都不一樣,而Student本身則是一個(gè)類。

可以自由地給一個(gè)實(shí)例變量綁定屬性,比如,給實(shí)例 May 綁定一個(gè) name 屬性,這個(gè) name 屬性是實(shí)例 May 特有的,其他新建的實(shí)例是沒有 name 屬性的

class Student(object):
  pass
May = Student()         # 新建May實(shí)例
print(May)
May.name = "May"         # 給實(shí)例 May 綁定 name 屬性為 "May"
print(May.name)
Peter = Student()        # 新建Peter實(shí)例
# print(Peter.name)       # 報(bào)錯(cuò),因?yàn)镻eter沒有Name屬性

那么,如果我們需要類必須綁定屬性,那如何定義呢?  請參見下文。

__init__ 構(gòu)造函數(shù)

由于類可以起到模板的作用,因此,可以在創(chuàng)建實(shí)例的時(shí)候,把一些我們認(rèn)為必須綁定的屬性強(qiáng)制填寫進(jìn)去。 (注意 __init__ 雙下劃線)

如對于Student類,我們定義 name 和 score 屬性(所有Sudent 都須有的屬性):

__init__方法的第一個(gè)參數(shù)永遠(yuǎn)是self,表示創(chuàng)建的實(shí)例本身,因此,在__init__方法內(nèi)部,就可以把各種屬性綁定到self,因?yàn)閟elf就指向創(chuàng)建的實(shí)例本身。

有了__init__方法,在創(chuàng)建實(shí)例的時(shí)候,就不能傳入空的參數(shù)了,必須傳入與__init__方法匹配的參數(shù),但self不需要傳,Python解釋器自己會(huì)把實(shí)例變量傳進(jìn)去:

class Student(object):
  def __init__(self, name, score):
    self.name = name
    self.score = score
May = Student("May",90)      # 須要提供兩個(gè)屬性
Peter = Student("Peter",85)
print(May.name, May.score)
print(Peter.name, Peter.score)

__del__ 析構(gòu)函數(shù)

Just like the __init__ method, there is another special method __del__ which is called when an object is going to die i.e. it is no longer being used and is being returned to the computer system for reusing that piece of memory.

The __del__ method is run when the object is no longer in use and there is no guarantee when that method will be run. If you want to explicitly see it in action, we have to use the del statement which is what we have done here.

相對于 構(gòu)造函數(shù) Python 也有類似 C++ 中的析構(gòu)函數(shù) __del__ , Python的垃圾回收過程與常用語言的不一樣,如果一定需要,最好需要使用del語句來激活。

私有變量

Note for C++/Java/C# Programmers
All class members (including the data members) are public and all the methods are virtual in Python.
One exception: If you use data members with names using the double underscore prefix such as __privatevar, Python uses name-mangling to effectively make it a private variable.
Thus, the convention followed is that any variable that is to be used only within the class or object should begin with an underscore and all other names are public and can be used by other classes/objects. Remember that this is only a convention and is not enforced by Python (except for the double underscore prefix).

Python 中定義私有變量,命名規(guī)則為前綴加兩個(gè)下劃線 “__” ,注意不可前后都包含__XXX__(該命名表示為類屬性或內(nèi)建變量);還有一種命名為單下劃線 _XXX ,表示約定俗成不可訪問的變量。

class Person(object):
  def __init__(self,name,sex):
    self.name = name
    self.__sex = sex       # sex 定義為私有變量
  def print_title(self):
    if self.sex == "male":
      print("man")
    elif self.sex == "female":
      print("woman")
May = Person("May","female")
print(May.name)    
print(May.__sex)           # 會(huì)報(bào)錯(cuò)

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python面向?qū)ο蟪绦蛟O(shè)計(jì)入門與進(jìn)階教程》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python編碼操作技巧總結(jié)》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • 搞笑的程序猿:看看你是哪種Python程序員

    搞笑的程序猿:看看你是哪種Python程序員

    這篇文章主要介紹了搞笑的程序猿:看看你是哪種Python程序員,不久前,在互聯(lián)網(wǎng)上出現(xiàn)了一篇有趣的文章,講的是對于同一個(gè)問題,不同層次的Python程序員編出的Python代碼,顯示出了不同的風(fēng)格,代碼都很簡單,有趣,需要的朋友可以參考下
    2015-06-06
  • python 列出面板數(shù)據(jù)所有變量名的示例代碼

    python 列出面板數(shù)據(jù)所有變量名的示例代碼

    在Python中,處理面板數(shù)據(jù)(Panel Data)通常使用pandas庫,特別是當(dāng)數(shù)據(jù)以DataFrame或Panel,這篇文章主要介紹了python 列出面板數(shù)據(jù)所有變量名,需要的朋友可以參考下
    2024-06-06
  • Python基礎(chǔ)教程之pip的安裝和卸載

    Python基礎(chǔ)教程之pip的安裝和卸載

    pip是一種工具,可以幫助用戶安裝卸載一些需要的安裝包,非常的簡單實(shí)用,下面這篇文章主要給大家介紹了關(guān)于Python基礎(chǔ)教程之pip的安裝和卸載的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • Python中執(zhí)行JavaScript實(shí)現(xiàn)數(shù)據(jù)抓取的多種方法

    Python中執(zhí)行JavaScript實(shí)現(xiàn)數(shù)據(jù)抓取的多種方法

    JavaScript是一門強(qiáng)大的腳本語言,廣泛應(yīng)用于網(wǎng)頁前端開發(fā)、構(gòu)建交互式用戶界面以及處理各種客戶端端任務(wù),有時(shí)可能需要在Python環(huán)境中執(zhí)行JavaScript代碼,本文將介紹多種方法,幫助你在Python中執(zhí)行 JavaScript代碼,并提供詳盡的示例代碼,使你能夠輕松掌握這一技能
    2023-11-11
  • darknet框架中YOLOv3對數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測詳解

    darknet框架中YOLOv3對數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測詳解

    這篇文章主要為大家介紹了darknet框架中YOLOv3對數(shù)據(jù)集進(jìn)行訓(xùn)練和預(yù)測使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Python簡單實(shí)現(xiàn)TCP包發(fā)送十六進(jìn)制數(shù)據(jù)的方法

    Python簡單實(shí)現(xiàn)TCP包發(fā)送十六進(jìn)制數(shù)據(jù)的方法

    這篇文章主要介紹了Python簡單實(shí)現(xiàn)TCP包發(fā)送十六進(jìn)制數(shù)據(jù)的方法,結(jié)合實(shí)例形式簡單分析了Python實(shí)現(xiàn)TCP數(shù)據(jù)傳輸及發(fā)送十六進(jìn)制數(shù)據(jù)包的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • 學(xué)習(xí)和使用python的13個(gè)理由

    學(xué)習(xí)和使用python的13個(gè)理由

    在本篇文章里小編給大家整理了關(guān)于學(xué)習(xí)和使用python的13個(gè)理由以及相關(guān)知識(shí)點(diǎn),需要的朋友們參考下。
    2019-07-07
  • 基于Python閉包及其作用域詳解

    基于Python閉包及其作用域詳解

    下面小編就為大家?guī)硪黄赑ython閉包及其作用域詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • Selenium 配置啟動(dòng)項(xiàng)參數(shù)的方法

    Selenium 配置啟動(dòng)項(xiàng)參數(shù)的方法

    這篇文章主要介紹了Selenium 配置啟動(dòng)項(xiàng)參數(shù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Python摳圖教程之使用OpenCV實(shí)現(xiàn)背景去除

    Python摳圖教程之使用OpenCV實(shí)現(xiàn)背景去除

    這篇文章主要給大家介紹了關(guān)于Python摳圖教程之使用OpenCV實(shí)現(xiàn)背景去除的相關(guān)資料,背景去除是在很多視覺應(yīng)用里的主要預(yù)處理步驟,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-10-10

最新評論