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

Python面向?qū)ο笾惖姆庋b操作示例

 更新時(shí)間:2019年06月08日 10:13:41   作者:feesland  
這篇文章主要介紹了Python面向?qū)ο笾惖姆庋b操作,結(jié)合具體實(shí)例形式分析了Python面向?qū)ο蟪绦蛟O(shè)計(jì)中類方法的定義與使用相關(guān)操作技巧,需要的朋友可以參考下

本文實(shí)例講述了Python面向?qū)ο笾惖姆庋b操作。分享給大家供大家參考,具體如下:

承接上一節(jié)《Python面向?qū)ο笾惡蛯?shí)例》,學(xué)了Student類的定義及實(shí)例化,每個(gè)實(shí)例都擁有各自的name和score?,F(xiàn)在若需要打印一個(gè)學(xué)生的成績(jī),可定義函數(shù) print_score()

該函數(shù)為類外的函數(shù),如下:

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)
def print_score(Student):          # 外部函數(shù)print_score(Student)
  # print("%s's score is: %d" %(Student.name,Student.score))       # 普通 print 寫法
  print("{0}'s score is: {1}".format(Student.name,Student.score))    # 建議使用 Python 2.7 + .format優(yōu)化寫法
print_score(May)
print_score(Peter)

既然Student實(shí)例本身就擁有這些數(shù)據(jù),要訪問這些數(shù)據(jù),就沒有必要從外面的函數(shù)去訪問,我們可以直接在Student類的內(nèi)部定義訪問數(shù)據(jù)的函數(shù)。這樣,就把數(shù)據(jù)給“封裝”起來了。

“封裝”就是將抽象得到的數(shù)據(jù)和行為(或功能)相結(jié)合,形成一個(gè)有機(jī)的整體(即類);封裝的目的是增強(qiáng)安全性和簡(jiǎn)化編程,使用者不必了解具體的實(shí)現(xiàn)細(xì)節(jié),而只是要通過外部接口,一特定的訪問權(quán)限來使用類的成員。

而這些封裝數(shù)據(jù)的函數(shù)是和Student類本身是關(guān)聯(lián)起來的,我們稱之為類的方法。那如何定義類的方法呢?

就要用到對(duì)象 self 本身,參考上例,把 print_score() 函數(shù)寫為類的方法(Python2.7之后的版本,推薦.format 輸出寫法):

class Student(object):
  def __init__(self, name, score):
    self.name = name
    self.score = score
  def print_score(self):
    print("{self.name}'s score is: {self.score}".format(self=self))    # Python 2.7 + .format優(yōu)化寫法
May = Student("May",90)
Peter = Student("Peter",85)

定義類的方法:除了第一個(gè)參數(shù)是self外,其他和普通函數(shù)一樣。

實(shí)例調(diào)用方法:只需要在實(shí)例變量上直接調(diào)用,除了self不用傳遞,其他參數(shù)正常傳入;注意,若類的方法僅需要self,不需要其他,調(diào)用該方法時(shí),僅需 instance_name.function_name()

這樣一來,我們從外部看Student類,就只需要知道,創(chuàng)建實(shí)例需要給出name和score,而如何打印,都是在Student類的內(nèi)部定義的,這些數(shù)據(jù)和邏輯被“封裝”起來了,調(diào)用很容易,但卻不用知道內(nèi)部實(shí)現(xiàn)的細(xì)節(jié)。

封裝的另一個(gè)好處是可以給Student類增加新的方法;這邊的方法也可以要求傳參,如新增定義compare 函數(shù),如下:

class Student(object):
  def __init__(self, name, score):
    self.name = name
    self.score = score
  def print_score(self):
    print("{self.name}'s score is: {self.score}".format(self=self))    # Python 2.7 + .format優(yōu)化寫法
  def compare(self,s):
    if self.score>s:
      print("better than %d" %(s))
    elif self.score==s:
      print("equal %d" %(s))
    else:
      print("lower than %d" %(s))
May = Student("May",90)
Peter = Student("Peter",85)
May.print_score()
Peter.print_score()
May.compare(100)
May.compare(90)
May.compare(89)

更多關(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)典教程

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

相關(guān)文章

  • python圖的深度優(yōu)先和廣度優(yōu)先算法實(shí)例分析

    python圖的深度優(yōu)先和廣度優(yōu)先算法實(shí)例分析

    這篇文章主要介紹了python圖的深度優(yōu)先和廣度優(yōu)先算法,結(jié)合實(shí)例形式分析了圖的深度優(yōu)先算法與廣度優(yōu)先算法相關(guān)概念、原理、實(shí)現(xiàn)技巧與操作注意事項(xiàng),需要的朋友可以參考下
    2019-10-10
  • Python使用PyGreSQL操作PostgreSQL數(shù)據(jù)庫(kù)教程

    Python使用PyGreSQL操作PostgreSQL數(shù)據(jù)庫(kù)教程

    這篇文章主要介紹了Python使用PyGreSQL操作PostgreSQL數(shù)據(jù)庫(kù),需要的朋友可以參考下
    2014-07-07
  • python實(shí)現(xiàn)QQ郵箱/163郵箱的郵件發(fā)送

    python實(shí)現(xiàn)QQ郵箱/163郵箱的郵件發(fā)送

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)QQ郵箱和163郵箱的郵件發(fā)送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • python中sys模塊的介紹與實(shí)例

    python中sys模塊的介紹與實(shí)例

    這篇文章主要給大家介紹了關(guān)于python中sys模塊的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • OpenCV半小時(shí)掌握基本操作之SIFT算法

    OpenCV半小時(shí)掌握基本操作之SIFT算法

    這篇文章主要介紹了OpenCV基本操作之SIFT算法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Python實(shí)現(xiàn)switch/case語句

    Python實(shí)現(xiàn)switch/case語句

    與Java、C\C++等語言不同,Python中是不提供switch/case語句的,這一點(diǎn)讓我感覺到很奇怪。我們可以通過如下幾種方法來實(shí)現(xiàn)switch/case語句
    2021-08-08
  • keras的backend 設(shè)置 tensorflow,theano操作

    keras的backend 設(shè)置 tensorflow,theano操作

    這篇文章主要介紹了keras的backend 設(shè)置 tensorflow,theano操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • python 實(shí)現(xiàn)有道翻譯功能

    python 實(shí)現(xiàn)有道翻譯功能

    這篇文章主要介紹了python 實(shí)現(xiàn)有道翻譯的方法,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-02-02
  • Python并發(fā)請(qǐng)求下限制QPS(每秒查詢率)的實(shí)現(xiàn)代碼

    Python并發(fā)請(qǐng)求下限制QPS(每秒查詢率)的實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python并發(fā)請(qǐng)求下限制QPS(每秒查詢率)實(shí)現(xiàn)方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python隨手筆記第一篇(2)之初識(shí)列表和元組

    Python隨手筆記第一篇(2)之初識(shí)列表和元組

    Python中,列表和元組是一種數(shù)據(jù)結(jié)構(gòu):序列,序列中的每個(gè)元素都被分配一個(gè)序號(hào),元素的位置,第一原元素的位置為0,因此類推,序列是最基本的數(shù)據(jù)結(jié)構(gòu),本文給大家分享Python隨手筆記第一篇(2)之初識(shí)列表和元組,感興趣的朋友一起學(xué)習(xí)吧
    2016-01-01

最新評(píng)論

富平县| 宣化县| 乌拉特前旗| 文水县| 兴业县| 定远县| 长垣县| 石河子市| 九龙坡区| 林西县| 子长县| 石柱| 万荣县| 大同市| 望都县| 红河县| 湘潭市| 鹤壁市| 香河县| 正安县| 株洲县| 玛多县| 柳河县| 黄浦区| 遂川县| 五指山市| 维西| 德令哈市| 巨野县| 区。| 海宁市| 当涂县| 海丰县| 辽宁省| 昌黎县| 乾安县| 庆阳市| 隆德县| 石林| 衡水市| 浪卡子县|