成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python面向對象編程 - 類和實例

Elle / 3398人閱讀

摘要:一面向對象編程。是一門面向對象的編程語言,通過對象實現對方法的調用。面向過程的程序設計把計算機程序視為一系列的命令集合,即一組函數的順序執(zhí)行。對于面向對象語言,重要的概念是類和實例。


一、preface

面向對象編程OOP:object oriented programming。
OOP把對象作為程序的基本單元,一個對象包含了數據和操作數據的函數。Python是一門面向對象的編程語言,通過對象實現對方法的調用。

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

對于面向對象語言,重要的概念是類和實例。類是一個抽象的模板,實例是根據類模板創(chuàng)建出的一個對象。
在python中,所有數據類型都可以視為對象,當然也可以自定義對象。自定義對象數據類型就是面向對象中類的概念,根據類來創(chuàng)建對象。
它的三大特點就是:封裝、繼承、多態(tài)。

二、類class

類是一個抽象的模板,是一種數據結構。

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

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

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

class Student(object):
    pass

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

三、實例instance

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

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

對類的實例,可以進行屬性的綁定。

屬性就是一個對象的數據或者函數元素。比如Student類中學生的姓名、學號等信息。

通過“據點屬性標識法”來訪問。

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

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

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

__init__(self)

1、 該方法的第一個參數永遠都是self,self指向創(chuàng)建的實例本身;

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

3、 __init__()方法返回None;

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

針對第三點:因為實例對象是在自動化創(chuàng)建實例調用后返回的,如果定義了構造器__init__(),它不應該返回任何對象,否則就有可能發(fā)生沖突,只能返回實例。試圖返回任何非None的其他對象會報TypeError的錯誤:

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

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


如果覺得文章有丟丟用處,動動小指,點個贊吧!

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

? thanks for watching, keep on updating...

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

轉載請注明本文地址:http://m.hztianpu.com/yun/42519.html

相關文章

  • SICP Python 描述 2.6 實現類和對象

    摘要:以這種方式實現對象系統(tǒng)的目的是展示使用對象隱喻并不需要特殊的編程語言。我們的實現并不遵循類型系統(tǒng)的明確規(guī)定。反之,它為實現對象隱喻的核心功能而設計。是分發(fā)字典,它響應消息和。 2.6 實現類和對象 來源:2.6 Implementing Classes and Objects 譯者:飛龍 協議:CC BY-NC-SA 4.0 在使用面向對象編程范式時,我們使用對象隱喻來指導程序...

    chenjiang3 評論0 收藏0
  • [Python3]Python面向對象的程序設計

    摘要:于發(fā)表了著名的有害論的論文引起了長達數年的論戰(zhàn)并由此產生了結構化程序設計方法。到現在為止面向對象已經成為了主流的開發(fā)思想。面向對象的程序設計優(yōu)點解決了程序的擴展性。 [Python3]Python面向對象的程序設計 一、面向對象的程序設計的由來 1.第一階段:面向機器,1940年以前 最早的程序設計都是采用機器語言來編寫的,直接使用二進制碼來表示機器能夠識別和執(zhí)行的指令和數據。 簡單來...

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

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

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

    摘要:的名字并不是規(guī)定死的因為是形參,也可以使用,但是最好還是按照約定是用。類的私有方法兩個下劃線開頭,聲明該方法為私有方法,只能在類的內部調用,不能在類地外部調用。。 類 面向對象編程具有三大特性:多態(tài)、繼承、封裝定義:是一個抽象的模板對象:類實例化屬性:這個類實例化后的對象具有的特征方法:類對象可以執(zhí)行的函數 類的定義 class 類名 class People(object): ...

    hzc 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<