一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python類方法總結講解

Python類方法總結講解

2021-12-15 00:21慵懶的貓丫頭 Python

這篇文章主要介紹了Python類方法總結講解,本篇文章通過簡要的案例,講解了該項技術的了解與使用,以下就是詳細內容,需要的朋友可以參考下

一、類方法

在類中的函數稱為類方法。與普通函數定義稍有區別。

1.普通方法

1.1 普通方法定義

普通方法與一般函數的定義稍有區別的點在于第一個參數是self,,指代的意思是指向實例對象本身。如下圖定義

?
1
2
3
4
5
class Person:
    def __init__(self,name,age):
        # name=對象的那個name,age=對象的那個age
        self.name=name
        self.age=age

1.2 普通方法調用

思考一下函數的調用是函數名(),類的方法調用呢?

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

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

?
1
2
3
4
#實例化對象cat
 cat=Animals()
#調用類中普通方法run
cat.run()

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

Python類方法總結講解

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

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

2.魔術方法

2.1 魔術方法定義

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

2.2 常見魔術方法

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

 Python類方法總結講解

看上圖我們只是創建了cat對象,并沒有調用__init__方法,但是卻執行了方法里面的方法體,是因為在創建對象時python自動觸發了。

__init__方法有什么作用:

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

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

如果在類里寫如下圖

?
1
2
3
4
5
6
7
class Person():
   name='jimi'
   age=12
   def run(self):
     print('run')
person1=Person()
person2=Person()

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

?
1
2
3
4
5
6
7
8
9
10
11
12
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__打印對象,對象就是一個地址

?
1
2
3
4
5
6
7
8
9
10
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#打印結果<__main__.Person object at 0x0000025C1F932C50>
print(person1)

Python類方法總結講解

3.類方法

3.1 類方法定義

?
1
2
3
4
5
6
7
8
9
10
11
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修飾。第一個參數為cls代表類

類方法特點:類方法里面不能調用普通方法

3.2 類方法調用

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

4.靜態方法

4.1 靜態方法定義

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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('我是靜態方法')

靜態方法用裝飾器@staticmethod修飾,無cls,self參數

4.2 靜態方法調用

對象名.靜態方法名()

類名.靜態方法名()

二 總結

普通方法中:

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

靜態方法:

  1. 不可調用普通方法
  2. 可調用類方法,類名.方法名()
  3. 可調用靜態方法,類名.方法名()

類方法:

  1. 不可調用普通方法
  2. 可調用類方法,類名.方法名()
  3. 可調用靜態方法,類名.方法名()

到此這篇關于Python類方法總結講解的文章就介紹到這了,更多相關Python類方法總結內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/weixin_41326473/article/details/119027153

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 人成网站在线观看 | 国产成人福利免费观看 | 亚洲国产精品久久久久久 | 夫妇野外交换激情 | 青青网站| 故意短裙公车被强好爽在线播放 | 日本人成大片在线 | 精品一区二区三区免费毛片 | 扒开女人屁股眼看个够 | 超级乱淫伦短篇在车上 | 好大好猛好爽好深视频免费 | 91碰| 王淑兰李思雨李铁柱乡村小说免费 | 免费精品一区二区三区在线观看 | 99久久中文字幕伊人 | 久久精品中文騷妇女内射 | 美女用手扒自己下部 | 好涨好大我快受不了了视频网 | 91麻豆精品国产片在线观看 | 超高清欧美同性videos | 亚洲成人影院在线 | 91天堂视频 | 久久青草费线频观看国产 | 午夜久久精品 | 色综合视频一区二区三区 | 亚洲妇熟xxxxx妇色黄 | 国产欧美成人免费观看 | 亚洲精品丝袜在线一区波多野结衣 | 亚洲 欧美 偷自乱 图片 | 亚洲美日韩 | 免费视频亚洲 | 2022日韩理论片在线观看 | 牛牛色婷婷在线视频播放 | 亚洲精品一区二区三区在线观看 | 国产免费资源 | 色综合视频在线观看 | 欧美日韩视频在线成人 | 日本一区二区精品88 | 成人嗯啊视频在线观看 | 我的绝色岳每雯雯 | 2021日本三级理论影院 |