五月综合激情婷婷六月,日韩欧美国产一区不卡,他扒开我内裤强吻我下面视频 ,无套内射无矿码免费看黄,天天躁,日日躁,狠狠躁

新聞動態(tài)

Python類方法總結講解

發(fā)布日期:2022-02-21 19:59 | 文章來源:源碼之家

一、類方法

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

1.普通方法

1.1 普通方法定義

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

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

1.2 普通方法調用

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

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

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

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

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

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

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

2.魔術方法

2.1 魔術方法定義

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

2.2 常見魔術方法

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

 

看上圖我們只是創(chuàng)建了cat對象,并沒有調用__init__方法,但是卻執(zhí)行了方法里面的方法體,是因為在創(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)  #打印結果<__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代表類

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

3.2 類方法調用

  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)方法調用

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

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

二 總結

普通方法中:

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

靜態(tài)方法:

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

類方法:

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

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

海外穩(wěn)定服務器

版權聲明:本站文章來源標注為YINGSOO的內容版權均為本站所有,歡迎引用、轉載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部