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

Python入門學(xué)習(xí)之類的相關(guān)知識總結(jié)

 更新時間:2021年05月25日 16:32:33   作者:GalaxyerKw  
今天帶大家復(fù)習(xí)python的基礎(chǔ)知識,文中對類的相關(guān)知識作了非常詳細(xì)的介紹,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下

前言

Python是面向?qū)ο蟮某绦蛟O(shè)計(Object Oriented Programming)。

面向?qū)ο蟮某绦蛟O(shè)計的一條基本原則是:

計算機(jī)程序由多個能夠起到子程序作用的單元或者對象組合而成。

面向?qū)ο蟮某绦蛟O(shè)計的一個關(guān)鍵性概念是:

數(shù)據(jù)以及數(shù)據(jù)的操作(即函數(shù)方法)封裝在一起。

這個概念對于接觸C++的我來說已經(jīng)很熟悉了。就是“類”Class。
Python完全支持所有面向?qū)ο蟮幕竟δ埽热纾?/p>

“封裝”、“繼承”、“多態(tài)”以及對基類方法的“覆蓋”或“重寫”。

下面請由我慢慢道來。

一、類的定義和使用

在C++中,類是“結(jié)構(gòu)體”的衍生。在Python中,類作為一個完全獨立的概念出現(xiàn)。

1.類的定義:

class ClassName:
	......

2.初始化函數(shù)和self參數(shù):【非常重要?。。。 ?/strong>

def __init__(self,a,b,......):
	self.變量1=a
	self.變量2=b
	......

①Python在初始化函數(shù)里定義“變量”。
當(dāng)我們要使用這個類的時候,可以直接對初始化函數(shù)里的變量賦值。
當(dāng)然,可以不寫形參a,b等等,直接給變量賦值。
②self參數(shù)表征這個類。
在類中寫函數(shù)(即方法)時,都必須傳入self參數(shù)。之后會舉例說明。

【由此,我們可以發(fā)現(xiàn),python中的init初始化函數(shù)與C++中的構(gòu)造函數(shù)如出一轍,其原理其實是一樣的】

3.外部變量使用類:即調(diào)用類的初始函數(shù)

class A:
	def __init__(self,p,q):
		self.a=p
		self.b=q
		
example=A(1,2)  #調(diào)用初始化函數(shù),傳入形參p=1,q=2,此時標(biāo)明example使用了A類
print(A.a)      #輸出1
print(A.b)      #輸出2

4.限制變量的適用范圍:私有or公有

我們知道,C++類中的變量有public、protected和private三種。Python中當(dāng)然也有,只是書寫方式不同。
特別注意,private變量“類內(nèi)”和“類外”的調(diào)用方法是不同的。
在類外獲取private變量值的方法有兩種:

①通過特定“接口”:即調(diào)用類內(nèi)函數(shù)方法,在類內(nèi)通過self實現(xiàn)對private變量的使用
②通過特殊方法:example._ ClassName(類名) __var(變量)

如果直接無腦調(diào)用private,程序出現(xiàn)AttributeError錯誤。當(dāng)然也不能對直接對private變量進(jìn)行該值和賦值的操作。

class A:
	def __init__(self,a,b,c):
		self.one=a      #沒有修飾,等價于public
		self._two=b     #加一條下劃線,等價于protected
		self.__three=c  #加兩條下劃線,等價于private
	def get_all(self):
		print(self.one)     #類內(nèi)的調(diào)用方式:格式與定義相同
		print(self._two)
		print(self.__three)
		
example=A(1,2,3)
example.get_all()         #通過“接口”獲取private值
print(example._A__three)  #通過特殊方法獲取private值

以上就是基本知識,我們通過一個示例程序加深印象:

class Human:
    def __init__(self,name,height,weight,sex):
        self.name=name
        self._height=height
        self.__weight=weight
        self.sex=sex
    def get_info(self):
        print(self.name)
        print(self._height)   #類內(nèi)部調(diào)用protected變量,加一個下劃線
        print(self.__weight)  #類內(nèi)部調(diào)用private變量,加兩個下劃線
        print(self.sex)
    def get_weight(self):   #接口:通過方法獲得private變量值,相當(dāng)于一個通道
        print("His(Her) weight is:")
        print(self.__weight)

DIONA=Human("diona",'150cm','50kg','female(♀)')
#通過類的內(nèi)部函數(shù)訪問變量并輸出,可以正常使用private和protected屬性的變量。
DIONA.get_info()

#height為protected屬性,在類外調(diào)用時,要加一個下劃線
print(DIONA._height)
#weight為private屬性,在類外調(diào)用時,要用特殊的方法:xxx._Classname(類名)__varname(變量名)
print(DIONA._Human__weight)

#使用接口獲得weight的值
DIONA.get_weight()  

二、類的方法

類的方法分為“共有方法”、“私有方法”、“靜態(tài)方法”和“類方法”。本文詳細(xì)講述后兩者。

1.靜態(tài)方法:
又稱“非實例方法”,一般與實例無關(guān)的方法,用于其他方法順帶調(diào)用。使用之前最好用@ staticmethod 注釋

2.類方法:
接受“類屬性”的方法。至少要接受一個形參cls,但調(diào)用時不需要為cls傳遞值。最好用@ classmethod 注釋。
p.s:何為“類屬性”?就是不寫在init函數(shù)中,直接寫在類中的變量。

class A:
	one=0  #這個one是“類屬性”
	def __init__(self):
		self.two=0   #這個two是“self屬性”

3.實例方法:
就是使用self屬性的一般方法。上面“一”中所寫到的方法都是實例方法。

4.外部調(diào)用規(guī)則:
①實例方法:只能使用實例名。
②靜態(tài)方法和類方法:可以使用實例名,也可以使用類名。

程序?qū)嵗?/p>

class Student:
    _number=0    #這個number是類屬性,直接定義在類中,必須用類方法去調(diào)用
    def __init__(self,name,uid):
        self._name=name
        self._uid=uid
        Student._number+=1     #每初始化一次,學(xué)生人數(shù)加1
        #另外,調(diào)用類屬性時,使用類名:ClassName.varname
        
    #實例方法:對self定義的變量操作
    def get_name(self):
        print(self._name)
    
    #靜態(tài)方法:(非實例方法)一般與實例無關(guān)的方法,用于其他方法順帶調(diào)用。
    @ staticmethod 
    def pls(a,b):
        return a+b;
    
    @ classmethod
    #類方法:至少要接受一個形參cls,但調(diào)用時不需要為cls傳遞值
    def get_number(cls):   
        print(cls._number)

lwc=Student('lwc','20009100132')
gtj=Student('gtj','20009100128')
wxm=Student('wxm','20018900232')

#外部調(diào)用實例方法,使用實例名。不能用類名調(diào)用實例方法。
lwc.get_name()

#外部調(diào)用類方法,使用類名或者實例名。
Student.get_number()
lwc.get_number()

三、類的屬性

類的屬性通俗地講就是“類中存放的變量”,一般有“類屬性”和“self屬性”兩種。
類的屬性在“二”中已經(jīng)講過,還有一個叫“動態(tài)增加屬性”和“動態(tài)刪除屬性”的內(nèi)容,實際運用較少,在此略講了。

四、類中常用特殊方法

Python類有大量的特殊方法。之前講的初始化函數(shù)就是“構(gòu)造函數(shù)”,就是一個特殊方法。與其對應(yīng)的“析構(gòu)函數(shù)”__ deal __( )也是特殊方法。
下面羅列了大量的特殊方法:

在這里插入圖片描述

到此這篇關(guān)于Python入門學(xué)習(xí)之類的相關(guān)知識總結(jié)的文章就介紹到這了,更多相關(guān)Python類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 配置python連接oracle讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫的操作流程

    配置python連接oracle讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫的操作流程

    這篇文章主要介紹了配置python連接oracle,讀取excel數(shù)據(jù)寫入數(shù)據(jù)庫,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • 獨立進(jìn)程使用django模型及django.setup()使用

    獨立進(jìn)程使用django模型及django.setup()使用

    這篇文章主要介紹了獨立進(jìn)程使用django模型(django.setup()使用),它提供了一種簡單且高效的方式來利用Django強(qiáng)大的功能,并使你的代碼更易于維護(hù)和擴(kuò)展,需要的朋友可以參考下
    2023-07-07
  • Python學(xué)習(xí)教程之常用的內(nèi)置函數(shù)大全

    Python學(xué)習(xí)教程之常用的內(nèi)置函數(shù)大全

    python給我們提供了很多已經(jīng)定義好的函數(shù),下面這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)教程之一些常用的內(nèi)置函數(shù),文中分享了關(guān)于數(shù)學(xué)函數(shù)、功能函數(shù)、類型轉(zhuǎn)換函數(shù)、字符串處理和序列處理函數(shù)的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • python判斷一個變量是否已經(jīng)設(shè)置的方法

    python判斷一個變量是否已經(jīng)設(shè)置的方法

    這篇文章主要介紹了python判斷一個變量是否已經(jīng)設(shè)置的方法,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2020-08-08
  • python人工智能算法之線性回歸實例

    python人工智能算法之線性回歸實例

    這篇文章主要為大家介紹了python人工智能算法之線性回歸實例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • 手把手帶你用Python實現(xiàn)一個計時器

    手把手帶你用Python實現(xiàn)一個計時器

    雖然Python是一種有效的編程語言,但純Python程序比C、Rust和Java等編譯語言中的對應(yīng)程序運行得更慢,為了更好地監(jiān)控和優(yōu)化Python程序,今天將為大家介紹如何使用?Python?計時器來監(jiān)控程序運行的速度,以便正對性改善代碼性能
    2022-06-06
  • 如何用python將文件夾內(nèi)多個excel表格合并成總表

    如何用python將文件夾內(nèi)多個excel表格合并成總表

    前幾天遇見這么一個問題,手上有很多張表格,這些表格中都只有一個sheet,需要把這些表匯總到一張表,下面這篇文章主要給大家介紹了關(guān)于如何用python將文件夾內(nèi)多個excel表格合并成總表的相關(guān)資料,需要的朋友可以參考下
    2023-06-06
  • 詳解Python中__new__方法的作用

    詳解Python中__new__方法的作用

    Python類中有些方法名、屬性名的前后都添加__雙下畫線,這種方法、屬性通常屬于Python的特殊方法和特殊屬性。本文將聊聊構(gòu)造方法__new__實際程序的應(yīng)用場景,感興趣的可以了解一下
    2022-03-03
  • Python工程師面試題 與Python Web相關(guān)

    Python工程師面試題 與Python Web相關(guān)

    這篇文章主要為大家分享了Python工程師面試題,面試題的內(nèi)容主要與Python Web相關(guān),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-01-01
  • Python實現(xiàn)深度遍歷和廣度遍歷的方法

    Python實現(xiàn)深度遍歷和廣度遍歷的方法

    今天小編就為大家分享一篇Python實現(xiàn)深度遍歷和廣度遍歷的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評論

含山县| 商都县| 梁山县| 鲁山县| 梁山县| 泊头市| 丰顺县| 青州市| 闻喜县| 巢湖市| 庄河市| 乾安县| 嘉鱼县| 芦溪县| 来宾市| 盐城市| 涞源县| 汤阴县| 尚志市| 舒城县| 积石山| 临潭县| 集安市| 肇州县| 赣榆县| 锡林浩特市| 阳朔县| 彭泽县| 利川市| 正定县| 内黄县| 山阴县| 邻水| 新建县| 湘阴县| 尼玛县| 白沙| 赤水市| 洞头县| 同德县| 敦化市|