亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python編程基礎(chǔ)之類和對(duì)象

 更新時(shí)間:2022年01月26日 11:29:29   投稿:BJT  
這篇文章主要為大家詳細(xì)介紹了Python的類和對(duì)象,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助

零、本講學(xué)習(xí)目標(biāo)

  • 了解面向?qū)ο缶幊趟枷?/li>
  • 掌握類和對(duì)象的定義和使用
  • 了解Python中的對(duì)象

一、面向?qū)ο?/h2>

(一)程序員“面向?qū)ο?rdquo;

在現(xiàn)實(shí)世界中存在各種不同形態(tài)的事物,這些事物之間存在著各種各樣的聯(lián)系。在程序中使用對(duì)象來(lái)映射現(xiàn)實(shí)中的事物,使用對(duì)象間的關(guān)系來(lái)描述事物之間的聯(lián)系,這種思想就是面向?qū)ο蟆?/p>

在這里插入圖片描述

(二)兩種編程思想實(shí)現(xiàn)五子棋

面向過(guò)程與面向?qū)ο蟮木幊趟枷?/p>

在這里插入圖片描述

若加入悔棋功能,面向過(guò)程和面向?qū)ο?,分別怎么實(shí)現(xiàn)呢?

在這里插入圖片描述

(三)面向過(guò)程 vs. 面向?qū)ο?nbsp;

面向過(guò)程就是分析出解決問(wèn)題所需要的步驟,然后用函數(shù)把這些步驟一一實(shí)現(xiàn),使用的時(shí)候依次調(diào)用就可以了。(POP:Procedure-Oriented Programming)

面向?qū)ο?/strong>則是把構(gòu)成問(wèn)題的事務(wù)按照一定規(guī)則劃分為多個(gè)獨(dú)立的對(duì)象,然后通過(guò)調(diào)用對(duì)象的方法來(lái)解決問(wèn)題。(OOP:Object-Oriented Programming)

(四)面向?qū)ο笕筇攸c(diǎn)

面向?qū)ο笫前褬?gòu)成問(wèn)題的事務(wù)按照一定規(guī)則劃分為多個(gè)獨(dú)立的對(duì)象,然后通過(guò)調(diào)用對(duì)象的方法來(lái)解決問(wèn)題。一個(gè)應(yīng)用程序會(huì)包含多個(gè)對(duì)象,通過(guò)多個(gè)對(duì)象的相互配合來(lái)實(shí)現(xiàn)應(yīng)用程序的功能,這樣當(dāng)應(yīng)用程序功能發(fā)生變動(dòng)時(shí),只需要修改個(gè)別的對(duì)象就可以了,從而使代碼更容易得到維護(hù)。面向?qū)ο蟮奶攸c(diǎn)主要可以概括為封裝性、繼承性和多態(tài)性。

1、封裝(encapsulation)

封裝是面向?qū)ο蟮暮诵乃枷耄瑢?duì)象的屬性(property)和行為(behavior)封裝起來(lái),不需要讓外界知道具體實(shí)現(xiàn)細(xì)節(jié)。

2、繼承(inheritance)

繼承主要描述的就是類與類之間的關(guān)系,通過(guò)繼承,可以在無(wú)需重新編寫原有類的情況下,對(duì)原有類的功能進(jìn)行擴(kuò)展(extend)。

3、多態(tài)(polymorphism)

多態(tài)指的是在一個(gè)類中定義的屬性和功能被其他類繼承后,當(dāng)把子類對(duì)象直接賦值給父類引用變量時(shí),相同引用類型的變量調(diào)用同一個(gè)方法所呈現(xiàn)出的多種不同行為特性。

二、類和對(duì)象

(一)類和對(duì)象的關(guān)系

1、概述

面向?qū)ο蟮木幊趟枷?,力圖讓程序中對(duì)事物的描述與該事物在現(xiàn)實(shí)中的形態(tài)保持一致。為了做到這一點(diǎn),面向?qū)ο蟮乃枷胫刑岢隽藘蓚€(gè)概念——類和對(duì)象。

類是對(duì)某一類事物的抽象描述,而對(duì)象用于表示現(xiàn)實(shí)中該類事物的個(gè)體。簡(jiǎn)而言之,類是模板(template),對(duì)象是實(shí)例(instance)。

2、示意圖

在這里插入圖片描述

分析: 可以將上圖人看作是一個(gè)類,將每個(gè)具體的人(如小韓、小石等)看作對(duì)象,從人與具體個(gè)人之間的關(guān)系便可以看出類與對(duì)象之間的關(guān)系。

說(shuō)明: 類用于描述多個(gè)對(duì)象的共同特征,它是對(duì)象的模板,而對(duì)象用于描述現(xiàn)實(shí)中的個(gè)體,它是類的實(shí)例。對(duì)象是類的具體化,并且一個(gè)類可以對(duì)應(yīng)多個(gè)對(duì)象。

(二)類的定義

1、類的構(gòu)成 

  • 類的名稱:類名,首字母必須大寫,比如Person
  • 類的屬性:一組數(shù)據(jù),比如姓名、性別、年齡……(描述類的特征 - 靜態(tài))
  • 類的方法:允許進(jìn)行操作的方法,比如說(shuō)話、步行、跑步……(描述類的行為 - 動(dòng)態(tài))

2、類定義語(yǔ)法格式

使用class關(guān)鍵字來(lái)聲明一個(gè)類

class 類名:
    類的屬性
    類的方法

定義的類繼承了一個(gè)或多個(gè)父類

class 類名(父類1, 父類2, …, 父類n):
    類的屬性
    類的方法

3、案例演示

編寫程序 - 類定義演示.py

swwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

(三)創(chuàng)建對(duì)象

1、語(yǔ)法格式

  • 利用無(wú)參構(gòu)造方法創(chuàng)建對(duì)象:對(duì)象名 = 類名()
  • 利用有參構(gòu)造方法創(chuàng)建對(duì)象:對(duì)象名 = 類名(參數(shù)列表)

2、給對(duì)象添加屬性

對(duì)象名.新屬性名 = 值

3、案例演示

編寫程序 - 基于類創(chuàng)建對(duì)象.py

在這里插入圖片描述

運(yùn)行程序,查看結(jié)果

在這里插入圖片描述

修改對(duì)象屬性值,再訪問(wèn)對(duì)象方法

在這里插入圖片描述

  • 由此可見(jiàn),在Person類里定義三個(gè)屬性name、gender、age,所有基于該類的對(duì)象都具有同樣的初始值,然后可以根據(jù)需要修改對(duì)象的屬性值。
  • 基于Person類再創(chuàng)建一個(gè)對(duì)象father,調(diào)用speak()方法,修改對(duì)象屬性值,再調(diào)用speak()方法

在這里插入圖片描述

 三、Python中的對(duì)象

(一)概述

  • 在前面,我們已使用過(guò)多種對(duì)象:整數(shù)對(duì)象、小數(shù)對(duì)象、字符串對(duì)象、函數(shù)對(duì)象、模塊對(duì)象等。
  • 用dir()函數(shù)查看一個(gè)對(duì)象有哪些屬性與方法

(二)常用對(duì)象

1、整數(shù)對(duì)象

(1)查看整數(shù)對(duì)象的屬性和方法

執(zhí)行:dir(int)

['__abs__',
 '__add__',
 '__and__',
 '__bool__',
 '__ceil__',
 '__class__',
 '__delattr__',
 '__dir__',
 '__divmod__',
 '__doc__',
 '__eq__',
 '__float__',
 '__floor__',
 '__floordiv__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getnewargs__',
 '__gt__',
 '__hash__',
 '__index__',
 '__init__',
 '__init_subclass__',
 '__int__',
 '__invert__',
 '__le__',
 '__lshift__',
 '__lt__',
 '__mod__',
 '__mul__',
 '__ne__',
 '__neg__',
 '__new__',
 '__or__',
 '__pos__',
 '__pow__',
 '__radd__',
 '__rand__',
 '__rdivmod__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__rfloordiv__',
 '__rlshift__',
 '__rmod__',
 '__rmul__',
 '__ror__',
 '__round__',
 '__rpow__',
 '__rrshift__',
 '__rshift__',
 '__rsub__',
 '__rtruediv__',
 '__rxor__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__sub__',
 '__subclasshook__',
 '__truediv__',
 '__trunc__',
 '__xor__',
 'as_integer_ratio',
 'bit_length',
 'conjugate',
 'denominator',
 'from_bytes',
 'imag',
 'numerator',
 'real',
 'to_bytes']

(2)案例演示

查看整數(shù)的字節(jié)長(zhǎng)度 - bit_length()

在這里插入圖片描述

327的二進(jìn)制位數(shù)是9,調(diào)用bin()函數(shù)將其轉(zhuǎn)換成二進(jìn)制:101000111(9位)

查看復(fù)數(shù)的實(shí)部和虛部

在這里插入圖片描述

整數(shù)轉(zhuǎn)換成字節(jié)數(shù)據(jù) - to_bytes()

在這里插入圖片描述

演示將整數(shù)1345轉(zhuǎn)換成字節(jié)數(shù)據(jù)

在這里插入圖片描述

演示將字節(jié)數(shù)據(jù)轉(zhuǎn)換成整數(shù)

在這里插入圖片描述

演示冪運(yùn)算 - __pow__()

在這里插入圖片描述

演示比較運(yùn)算

在這里插入圖片描述

2、小數(shù)對(duì)象

(1)查看小數(shù)對(duì)象的屬性和方法

執(zhí)行:dir(float)

['__abs__',
 '__add__',
 '__bool__',
 '__class__',
 '__delattr__',
 '__dir__',
 '__divmod__',
 '__doc__',
 '__eq__',
 '__float__',
 '__floordiv__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getformat__',
 '__getnewargs__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__int__',
 '__le__',
 '__lt__',
 '__mod__',
 '__mul__',
 '__ne__',
 '__neg__',
 '__new__',
 '__pos__',
 '__pow__',
 '__radd__',
 '__rdivmod__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__rfloordiv__',
 '__rmod__',
 '__rmul__',
 '__round__',
 '__rpow__',
 '__rsub__',
 '__rtruediv__',
 '__set_format__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__sub__',
 '__subclasshook__',
 '__truediv__',
 '__trunc__',
 'as_integer_ratio',
 'conjugate',
 'fromhex',
 'hex',
 'imag',
 'is_integer',
 'real']

(2)案例演示

保留小數(shù)位數(shù) - __round__()

在這里插入圖片描述

演示冪運(yùn)算 - __pow__()

在這里插入圖片描述

3、字符串對(duì)象

(1)查看字符串對(duì)象的屬性和方法

執(zhí)行:dir(str)

['__add__',
 '__class__',
 '__contains__',
 '__delattr__',
 '__dir__',
 '__doc__',
 '__eq__',
 '__format__',
 '__ge__',
 '__getattribute__',
 '__getitem__',
 '__getnewargs__',
 '__gt__',
 '__hash__',
 '__init__',
 '__init_subclass__',
 '__iter__',
 '__le__',
 '__len__',
 '__lt__',
 '__mod__',
 '__mul__',
 '__ne__',
 '__new__',
 '__reduce__',
 '__reduce_ex__',
 '__repr__',
 '__rmod__',
 '__rmul__',
 '__setattr__',
 '__sizeof__',
 '__str__',
 '__subclasshook__',
 'capitalize',
 'casefold',
 'center',
 'count',
 'encode',
 'endswith',
 'expandtabs',
 'find',
 'format',
 'format_map',
 'index',
 'isalnum',
 'isalpha',
 'isascii',
 'isdecimal',
 'isdigit',
 'isidentifier',
 'islower',
 'isnumeric',
 'isprintable',
 'isspace',
 'istitle',
 'isupper',
 'join',
 'ljust',
 'lower',
 'lstrip',
 'maketrans',
 'partition',
 'replace',
 'rfind',
 'rindex',
 'rjust',
 'rpartition',
 'rsplit',
 'rstrip',
 'split',
 'splitlines',
 'startswith',
 'strip',
 'swapcase',
 'title',
 'translate',
 'upper',
 'zfill']

(2)案例演示

判斷字符串是不是全為數(shù)字構(gòu)成 - isdigit()

在這里插入圖片描述

判斷字符串是不是全為字母構(gòu)成 - isalpha()

在這里插入圖片描述

4、函數(shù)對(duì)象

定義函數(shù)

在這里插入圖片描述

查看函數(shù)類型

在這里插入圖片描述

將函數(shù)對(duì)象賦值給變量

在這里插入圖片描述

5、模塊對(duì)象

導(dǎo)入模塊并查看類型

在這里插入圖片描述

訪問(wèn)模塊的屬性與函數(shù)

在這里插入圖片描述

將模塊對(duì)象賦值給變量

在這里插入圖片描述

 (三)兩種對(duì)象

在Python的對(duì)象模型中,有兩種對(duì)象:類對(duì)象和實(shí)例對(duì)象。類對(duì)象是在執(zhí)行class語(yǔ)句時(shí)創(chuàng)建的,而實(shí)例對(duì)象是在調(diào)用類的時(shí)候創(chuàng)建的。每調(diào)用一次類,便創(chuàng)建一個(gè)實(shí)例對(duì)象。類對(duì)象只有一個(gè),而實(shí)例對(duì)象可以有多個(gè)。類對(duì)象和每個(gè)實(shí)例對(duì)象都分別擁有自己的命名空間,在各自的命名空間內(nèi)存儲(chǔ)屬于自己的數(shù)據(jù)。

1、類對(duì)象

  • Python執(zhí)行class語(yǔ)句時(shí)創(chuàng)建一個(gè)類對(duì)象和一個(gè)變量(名稱就是類名稱),變量引用類對(duì)象。與def類似,class也是可執(zhí)行語(yǔ)句。導(dǎo)入類模塊時(shí),class語(yǔ)句被執(zhí)行,創(chuàng)建類對(duì)象。
  • 類中的賦值語(yǔ)句創(chuàng)建的變量是類的數(shù)據(jù)屬性。與模塊類似,類中的頂層賦值語(yǔ)句創(chuàng)建的變量才屬于類對(duì)象。類的數(shù)據(jù)數(shù)據(jù)用“對(duì)象名.屬性名”格式來(lái)訪問(wèn)。
  • 類中的def語(yǔ)句定義的函數(shù)是類的方法屬性,用“對(duì)象名.方法名()”格式來(lái)訪問(wèn)。

類的數(shù)據(jù)和方法由所有的實(shí)例對(duì)象共享。

2、實(shí)例對(duì)象

  • 實(shí)例對(duì)象通過(guò)調(diào)用類對(duì)象來(lái)創(chuàng)建(就像調(diào)用函數(shù)一樣來(lái)調(diào)用類對(duì)象)。
  • 每個(gè)實(shí)例對(duì)象繼承類對(duì)象的屬性,并獲得自己的命名空間。
  • 實(shí)例對(duì)象的“私有”屬性。類的方法函數(shù)的第一個(gè)參數(shù)默認(rèn)為self,表示引用方法的對(duì)象實(shí)例。在方法中對(duì)self的屬性賦值才會(huì)創(chuàng)建屬于實(shí)例對(duì)象的屬性。

總結(jié)

本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!    

相關(guān)文章

  • Python實(shí)現(xiàn)的企業(yè)粉絲抽獎(jiǎng)功能示例

    Python實(shí)現(xiàn)的企業(yè)粉絲抽獎(jiǎng)功能示例

    這篇文章主要介紹了Python實(shí)現(xiàn)的企業(yè)粉絲抽獎(jiǎng)功能,涉及Python數(shù)值運(yùn)算與隨機(jī)數(shù)生成相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07
  • Python第三方庫(kù)的安裝方法總結(jié)

    Python第三方庫(kù)的安裝方法總結(jié)

    庫(kù)library是一個(gè)泛稱,一般值作為文件形式存在的模塊以及以文件夾形式存在的包的合成,這里作了Python第三方庫(kù)的安裝方法總結(jié),包括源碼安裝、包管理器安裝以及虛擬環(huán)境相關(guān)安裝三種方式的講解
    2016-06-06
  • Python中的shutil模塊詳析

    Python中的shutil模塊詳析

    這篇文章主要介紹了Python中的shutil模塊詳析,Python的Shutil模塊可以看做是OS模塊的補(bǔ)充,它提供了對(duì)文件(夾)復(fù)制,移動(dòng),刪除,壓縮和解壓縮的方法,下面本文會(huì)對(duì)shutil模塊的常用方法進(jìn)行分類介紹,需要的朋友可以參考下
    2023-09-09
  • python實(shí)現(xiàn)數(shù)學(xué)模型(插值、擬合和微分方程)

    python實(shí)現(xiàn)數(shù)學(xué)模型(插值、擬合和微分方程)

    這篇文章主要介紹了python實(shí)現(xiàn)數(shù)學(xué)模型(插值、擬合和微分方程),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • 淺談python之自動(dòng)化運(yùn)維(Paramiko)

    淺談python之自動(dòng)化運(yùn)維(Paramiko)

    這篇文章主要介紹了淺談python之自動(dòng)化運(yùn)維(Paramiko),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 詳解Python 切片語(yǔ)法

    詳解Python 切片語(yǔ)法

    Python的切片是特別常用的功能,主要用于對(duì)列表的元素取值。這篇文章主要介紹了詳解Python 切片語(yǔ)法,需要的朋友可以參考下
    2019-06-06
  • TensorFlow實(shí)現(xiàn)簡(jiǎn)單卷積神經(jīng)網(wǎng)絡(luò)

    TensorFlow實(shí)現(xiàn)簡(jiǎn)單卷積神經(jīng)網(wǎng)絡(luò)

    這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)簡(jiǎn)單卷積神經(jīng)網(wǎng)絡(luò),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • python中wx將圖標(biāo)顯示在右下角的腳本代碼

    python中wx將圖標(biāo)顯示在右下角的腳本代碼

    python中wx將圖標(biāo)顯示在右下腳的代碼,此程序摘自wxdemo,不夠完善,只供參考用
    2013-03-03
  • python dataframe如何選擇某一列非空的行

    python dataframe如何選擇某一列非空的行

    這篇文章主要介紹了python dataframe如何選擇某一列非空的行問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 用python寫測(cè)試數(shù)據(jù)文件過(guò)程解析

    用python寫測(cè)試數(shù)據(jù)文件過(guò)程解析

    這篇文章主要介紹了用python寫測(cè)試數(shù)據(jù)文件過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論