成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Python面向?qū)ο缶幊?- 類和實(shí)例

Elle / 3358人閱讀

摘要:一面向?qū)ο缶幊?。是一門面向?qū)ο蟮木幊陶Z言,通過對象實(shí)現(xiàn)對方法的調(diào)用。面向過程的程序設(shè)計(jì)把計(jì)算機(jī)程序視為一系列的命令集合,即一組函數(shù)的順序執(zhí)行。對于面向?qū)ο笳Z言,重要的概念是類和實(shí)例。


一、preface

面向?qū)ο缶幊蘋OP:object oriented programming。
OOP把對象作為程序的基本單元,一個(gè)對象包含了數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)。Python是一門面向?qū)ο蟮木幊陶Z言,通過對象實(shí)現(xiàn)對方法的調(diào)用。

面向過程的程序設(shè)計(jì)把計(jì)算機(jī)程序視為一系列的命令集合,即一組函數(shù)的順序執(zhí)行。為了簡化程序設(shè)計(jì),面向過程把函數(shù)繼續(xù)切分為子函數(shù),即把大塊函數(shù)通過切割成小塊函數(shù)來降低系統(tǒng)的復(fù)雜度。
而面向?qū)ο蟮某绦蛟O(shè)計(jì)把計(jì)算機(jī)程序視為一組對象的集合,而每個(gè)對象都可以接收其他對象發(fā)過來的消息,并處理這些消息,計(jì)算機(jī)程序的執(zhí)行就是一系列消息在各個(gè)對象之間傳遞。

對于面向?qū)ο笳Z言,重要的概念是類和實(shí)例。類是一個(gè)抽象的模板,實(shí)例是根據(jù)類模板創(chuàng)建出的一個(gè)對象。
在python中,所有數(shù)據(jù)類型都可以視為對象,當(dāng)然也可以自定義對象。自定義對象數(shù)據(jù)類型就是面向?qū)ο笾蓄惖母拍睿鶕?jù)類來創(chuàng)建對象。
它的三大特點(diǎn)就是:封裝、繼承、多態(tài)。

二、類class

類是一個(gè)抽象的模板,是一種數(shù)據(jù)結(jié)構(gòu)。

語法:
class class_name: pass
class class_name(object): pass

說明:
class是關(guān)鍵字,類。類名class_name通常以大寫字母開頭。
object表示該類是從哪個(gè)類繼承而來。事實(shí)上object是所有類都會(huì)繼承的基類,一般不會(huì)顯示寫出。(我一般會(huì)習(xí)慣寫上)

比如學(xué)生,一個(gè)班級會(huì)有很多個(gè)學(xué)生,那對于學(xué)生這個(gè)集合,會(huì)有很多共同的地方,比如說學(xué)生的姓名、學(xué)號、年級、專業(yè)、成績等一系列共同的特性,那么我們就可以把這些都抽象成一個(gè)學(xué)生Student類。如下:

class Student(object):
    pass

上面例子,我們先用pass進(jìn)行演示,表示什么都不操作。

三、實(shí)例instance

通過類可以創(chuàng)建Student實(shí)例,方法如下:

>>> bart = Student()        # 變量bart指向的是一個(gè)Student的實(shí)例 
>>> bart
<__main__.Student object at 0x0086F710> # 類object 實(shí)例的內(nèi)存地址
>>> Student                 # 類
     # 返回的是Student 類的屬性 class

對類的實(shí)例,可以進(jìn)行屬性的綁定。

屬性就是一個(gè)對象的數(shù)據(jù)或者函數(shù)元素。比如Student類中學(xué)生的姓名、學(xué)號等信息。

通過“據(jù)點(diǎn)屬性標(biāo)識(shí)法”來訪問。

python是動(dòng)態(tài)語言,根據(jù)類創(chuàng)建的實(shí)例可以任意綁定屬性。給實(shí)例綁定屬性的方法是通過實(shí)例變量,或者通過self變量。

>>> bart.name = "xlp"        # 動(dòng)態(tài)給變量綁定屬性
>>> bart.name
"xlp"

那屬性是如何實(shí)現(xiàn)綁定的呢?__init__()實(shí)例方法。
當(dāng)一個(gè)實(shí)例被創(chuàng)建后,Python會(huì)檢查是否實(shí)現(xiàn)了__init__()方法,如果沒有定義該方法,對實(shí)例不會(huì)施加任何特定的操作,任何需要特殊的操作,需要自己去自定義該方法。即__init()__會(huì)被自動(dòng)調(diào)用,不管是默認(rèn)的還是自定義的。

__init__(self)

1、 該方法的第一個(gè)參數(shù)永遠(yuǎn)都是self,self指向創(chuàng)建的實(shí)例本身;

2、 通過該方法,把屬性綁定到self指向的實(shí)例上;

3、 __init__()方法返回None

4、 該方法中,可以設(shè)置默認(rèn)參數(shù)和位置參數(shù)。創(chuàng)建實(shí)例時(shí),不能傳入空的參數(shù),必須傳入與方法匹配的參數(shù),但self不需要傳入,默認(rèn)參數(shù)根據(jù)需要進(jìn)行傳入與否。

針對第三點(diǎn):因?yàn)閷?shí)例對象是在自動(dòng)化創(chuàng)建實(shí)例調(diào)用后返回的,如果定義了構(gòu)造器__init__(),它不應(yīng)該返回任何對象,否則就有可能發(fā)生沖突,只能返回實(shí)例。試圖返回任何非None的其他對象會(huì)報(bào)TypeError的錯(cuò)誤:

查看實(shí)例屬性:dir()
通過內(nèi)建函數(shù)dir(class_name)可以查看類的屬性,例如:dir(Student1)。也可以訪問實(shí)例的屬性。自己嘗試打印出來看看~

屬性這一塊還有點(diǎn)玄幻:類屬性和實(shí)例屬性。下一小節(jié)一起來看看吧~
然后面向過程其實(shí)也不太記得了,如果有懂的小伙伴可以留言哦~ ~ ~


如果覺得文章有丟丟用處,動(dòng)動(dòng)小指,點(diǎn)個(gè)贊吧!

如果哪里寫的有問題,或者有更好的方式,cue我一下

? thanks for watching, keep on updating...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/42519.html

相關(guān)文章

  • SICP Python 描述 2.6 實(shí)現(xiàn)類和對象

    摘要:以這種方式實(shí)現(xiàn)對象系統(tǒng)的目的是展示使用對象隱喻并不需要特殊的編程語言。我們的實(shí)現(xiàn)并不遵循類型系統(tǒng)的明確規(guī)定。反之,它為實(shí)現(xiàn)對象隱喻的核心功能而設(shè)計(jì)。是分發(fā)字典,它響應(yīng)消息和。 2.6 實(shí)現(xiàn)類和對象 來源:2.6 Implementing Classes and Objects 譯者:飛龍 協(xié)議:CC BY-NC-SA 4.0 在使用面向?qū)ο缶幊谭妒綍r(shí),我們使用對象隱喻來指導(dǎo)程序...

    chenjiang3 評論0 收藏0
  • [Python3]Python面向對象的程序設(shè)計(jì)

    摘要:于發(fā)表了著名的有害論的論文引起了長達(dá)數(shù)年的論戰(zhàn)并由此產(chǎn)生了結(jié)構(gòu)化程序設(shè)計(jì)方法。到現(xiàn)在為止面向?qū)ο笠呀?jīng)成為了主流的開發(fā)思想。面向?qū)ο蟮某绦蛟O(shè)計(jì)優(yōu)點(diǎn)解決了程序的擴(kuò)展性。 [Python3]Python面向?qū)ο蟮某绦蛟O(shè)計(jì) 一、面向?qū)ο蟮某绦蛟O(shè)計(jì)的由來 1.第一階段:面向機(jī)器,1940年以前 最早的程序設(shè)計(jì)都是采用機(jī)器語言來編寫的,直接使用二進(jìn)制碼來表示機(jī)器能夠識(shí)別和執(zhí)行的指令和數(shù)據(jù)。 簡單來...

    OpenDigg 評論0 收藏0
  • PHP設(shè)計(jì)模式(二):抽象類和接口

    摘要:在設(shè)計(jì)模式中,抽象類不能夠被實(shí)例化初始化,但是可以依靠具體類的繼承來實(shí)現(xiàn)。對于大型項(xiàng)目來說,對象都是由基本的抽象類繼承實(shí)現(xiàn),而這些類的方法通常都由接口來定義。 原文地址:PHP設(shè)計(jì)模式(二):抽象類和接口 Introduction 對于編程來說,對事物的抽象是一個(gè)老生常談的話題,抽象問題更利于面向?qū)ο缶幊桃约俺绦蛟O(shè)計(jì)模式。和C/C++,Java,Python等語言一樣,PHP也支持面向...

    xialong 評論0 收藏0
  • python大佬養(yǎng)成計(jì)劃--面向對象

    摘要:的名字并不是規(guī)定死的因?yàn)槭切螀?,也可以使用,但是最好還是按照約定是用。類的私有方法兩個(gè)下劃線開頭,聲明該方法為私有方法,只能在類的內(nèi)部調(diào)用,不能在類地外部調(diào)用。。 類 面向?qū)ο缶幊叹哂腥筇匦裕憾鄳B(tài)、繼承、封裝定義:是一個(gè)抽象的模板對象:類實(shí)例化屬性:這個(gè)類實(shí)例化后的對象具有的特征方法:類對象可以執(zhí)行的函數(shù) 類的定義 class 類名 class People(object): ...

    hzc 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<