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

Python類方法總結(jié)講解

 更新時間:2021年07月26日 08:55:37   作者:慵懶的貓丫頭  
這篇文章主要介紹了Python類方法總結(jié)講解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

一、類方法

在類中的函數(shù)稱為類方法。與普通函數(shù)定義稍有區(qū)別。

1.普通方法

1.1 普通方法定義

普通方法與一般函數(shù)的定義稍有區(qū)別的點(diǎn)在于第一個參數(shù)是self,,指代的意思是指向?qū)嵗龑ο蟊旧怼H缦聢D定義

class Person:
    def __init__(self,name,age):
        # name=對象的那個name,age=對象的那個age
        self.name=name
        self.age=age

1.2 普通方法調(diào)用

思考一下函數(shù)的調(diào)用是函數(shù)名(),類的方法調(diào)用呢?

類方法調(diào)用必須要借助對象。調(diào)用方式:對象.方法名()。

不能直接用類名.方法名(),前面已經(jīng)說過了類中的方法第一個參數(shù)是self,代表的是實(shí)例對象本身,所以類是不能直接調(diào)用普通方法的

#實(shí)例化對象cat
 cat=Animals()
#調(diào)用類中普通方法run
cat.run()

如果使用類名.方法名的時候會出現(xiàn):TypeError: run() missing 1 required positional argument: 'self',遺失一個參數(shù)。

但實(shí)際上我們再使用對象.方法名()的時候也沒有帶self,卻沒有報遺失一個參數(shù)。

原因:當(dāng)我們實(shí)例化對象的時候,即cat=Animal()執(zhí)行的時候已經(jīng)將cat的地址傳給self,此時self指代的是cat.

2.魔術(shù)方法

2.1 魔術(shù)方法定義

前面普通方法是需要對象名.方法名()去調(diào)用,而我們的魔術(shù)方法比較特殊,他是在特殊時刻自動觸發(fā),即不需要調(diào)用。

2.2 常見魔術(shù)方法

__init__(self,[參數(shù)名]) 對象創(chuàng)建時自動調(diào)用的方法
__str__(self,[參數(shù)名]) 函數(shù)有返回值,當(dāng)打印對象名的時候自動調(diào)用
__del__(self) 當(dāng)刪除引用時自動調(diào)用
__call__(elf,[參數(shù)名]) 當(dāng)執(zhí)行對象名()時自動調(diào)用即把對象當(dāng)成函數(shù)使用

 

看上圖我們只是創(chuàng)建了cat對象,并沒有調(diào)用__init__方法,但是卻執(zhí)行了方法里面的方法體,是因?yàn)樵趧?chuàng)建對象時python自動觸發(fā)了。

__init__方法有什么作用:

定義一個類時,常常要定義屬性和方法,屬性是類的一個特征,而方法是它能做的事情。

所有的人都有名字和年齡,所以我們要定義一個Person類,擁有兩個屬性名字和年齡

如果在類里寫如下圖

class Person():
   name='jimi'
   age=12
   def run(self):
     print('run')
person1=Person()
person2=Person()

那么person1和person2對象擁有了Person的屬性,但是此刻他倆的屬性一樣,可是并不符合每個人的特征啊?每個人的名字和年齡不一致的。那怎么樣才能創(chuàng)造出對象不一樣的屬性值,這里就用__init__

class Person:
    def __init__(self,name,age):
        # name=對象的那個name,age=對象的那個age
        self.name=name
        self.age=age
 
person1=Person('meimei',12)
# 打印person1的屬性  meimei 12
print(person1.name,person1.age)
person2=Person('john',13)
# # 打印person1的屬性  john 13
print(person2.name,person2.age)

__str__是用來打印對象時返回一個值,所以__str__是有return 語句的。如果不用__str__打印對象,對象就是一個地址

class Person:
    def __init__(self,name,age):
        # name=對象的那個name,age=對象的那個age
        self.name=name
        self.age=age
    # def __str__(self):
    #     return '這是name:{},這是age:{}'.format(self.name,self.age)
 
person1=Person('meimei',12)  #打印結(jié)果<__main__.Person object at 0x0000025C1F932C50>
print(person1)

3.類方法

3.1 類方法定義

class Person:
    def __init__(self,name,age):
        # name=對象的那個name,age=對象的那個age
        self.name=name
        self.age=age
    # def __str__(self,*krg,**krgs):
    #     return '這是name:{},這是age:{}'.format(self.name,self.age)
    #類方法
    @classmethod
    def test1(cls):
        print('我是類方法')

方法前用裝飾器@classmethod修飾。第一個參數(shù)為cls代表類

類方法特點(diǎn):類方法里面不能調(diào)用普通方法

3.2 類方法調(diào)用

  1. 對象名.方法名()
  2. 類名.方法名()

4.靜態(tài)方法

4.1 靜態(tài)方法定義

class Person:
    def __init__(self,name,age):
        # name=對象的那個name,age=對象的那個age
        self.name=name
        self.age=age
    # def __str__(self):
    #     return '這是name:{},這是age:{}'.format(self.name,self.age)
    def run(self):
        Person.test1()
        Person.test()
        print('我是run')
    @classmethod
    def test1(cls):
        print('我是類方法')
    @staticmethod
    def test(*krgs):
        Person.test1()
        print('我是靜態(tài)方法')

靜態(tài)方法用裝飾器@staticmethod修飾,無cls,self參數(shù)

4.2 靜態(tài)方法調(diào)用

對象名.靜態(tài)方法名()

類名.靜態(tài)方法名()

二 總結(jié)

普通方法中:

  1. 可調(diào)用普通方法,使用self.方法名()
  2. 可調(diào)用靜態(tài)方法,使用類名.方法名()
  3. 可調(diào)用類方法,使用類名.類名.方法名()

靜態(tài)方法:

  1. 不可調(diào)用普通方法
  2. 可調(diào)用類方法,類名.方法名()
  3. 可調(diào)用靜態(tài)方法,類名.方法名()

類方法:

  1. 不可調(diào)用普通方法
  2. 可調(diào)用類方法,類名.方法名()
  3. 可調(diào)用靜態(tài)方法,類名.方法名()

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

相關(guān)文章

  • django創(chuàng)建自定義模板處理器的實(shí)例詳解

    django創(chuàng)建自定義模板處理器的實(shí)例詳解

    這篇文章主要介紹了django創(chuàng)建自定義模板處理器的實(shí)例詳解的相關(guān)資料,這里說明了如何需要django模板處理器及實(shí)現(xiàn)方法,希望大家能理解掌握這部分內(nèi)容,需要的朋友可以參考下
    2017-08-08
  • Java byte數(shù)組操縱方式代碼實(shí)例解析

    Java byte數(shù)組操縱方式代碼實(shí)例解析

    這篇文章主要介紹了Java byte數(shù)組操縱方式代碼實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-07-07
  • 使用python獲取電腦的磁盤信息方法

    使用python獲取電腦的磁盤信息方法

    今天小編就為大家分享一篇使用python獲取電腦的磁盤信息方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • pytorch判斷是否cuda 判斷變量類型方式

    pytorch判斷是否cuda 判斷變量類型方式

    這篇文章主要介紹了pytorch判斷是否cuda 判斷變量類型方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python使用異步編程提升程序性能詳解

    Python使用異步編程提升程序性能詳解

    這篇文章主要介紹了Python使用異步編程提升程序性能,異步編程是一種強(qiáng)大的技術(shù),可以顯著提升應(yīng)用程序的性能,它允許你在不需要手動管理線程或進(jìn)程的情況下,同時執(zhí)行多個任務(wù),需要的朋友可以參考下
    2025-04-04
  • 關(guān)于Django Models CharField 參數(shù)說明

    關(guān)于Django Models CharField 參數(shù)說明

    這篇文章主要介紹了關(guān)于Django Models CharField 參數(shù)說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Python實(shí)現(xiàn)比較兩個列表(list)范圍

    Python實(shí)現(xiàn)比較兩個列表(list)范圍

    這篇文章主要介紹了Python實(shí)現(xiàn)比較兩個列表(list)范圍,本文根據(jù)一道題目實(shí)現(xiàn)解決代碼,本文分別給出題目和解答源碼,需要的朋友可以參考下
    2015-06-06
  • 用Python搶火車票的簡單小程序?qū)崿F(xiàn)解析

    用Python搶火車票的簡單小程序?qū)崿F(xiàn)解析

    這篇文章主要介紹了用Python搶火車票的簡單小程序?qū)崿F(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • python在windows下實(shí)現(xiàn)ping操作并接收返回信息的方法

    python在windows下實(shí)現(xiàn)ping操作并接收返回信息的方法

    這篇文章主要介紹了python在windows下實(shí)現(xiàn)ping操作并接收返回信息的方法,實(shí)例分析了Python實(shí)現(xiàn)ping操作的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • python實(shí)現(xiàn)中文文本分句的例子

    python實(shí)現(xiàn)中文文本分句的例子

    今天小編就為大家分享一篇python實(shí)現(xiàn)中文文本分句的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07

最新評論

桂林市| 渭南市| 青铜峡市| 麻栗坡县| 工布江达县| 庆元县| 微博| 通州市| 建水县| 大同市| 长兴县| 桂林市| 长兴县| 大荔县| 盐边县| 河南省| 罗定市| 岳阳市| 岳阳市| 安多县| 合川市| 东辽县| 皮山县| 盈江县| 大理市| 大竹县| 云林县| 岑溪市| 巍山| 驻马店市| 深州市| 延安市| 临沭县| 澄江县| 静海县| 桂东县| 东乡族自治县| 通山县| 康平县| 广德县| 安仁县|