Python 中的類方法和靜態方法

2021-09-24 10:17:03 字數 894 閱讀 4123

1、靜態方法

(1).格式:在方法上面新增 @staticmethod

(2).引數:靜態方法可以有引數也可以無引數

(3).應用場景:一般用於和類物件以及例項物件無關的**。

(4).使用方式: 類名.靜態方法名(或者物件名.靜態方法名)。

class hello(object):

@staticmethod

def say():

print('hello wold')

hello.say()

hello = hello() # hello wold

hello.say() # hello wold

2.類方法

無需例項化,可以通過類直接呼叫的方法,但是方法的第乙個引數接收的一定是類本身

(1).在方法上面新增@classmethod

(2).方法的引數為 cls 也可以是其他名稱,但是一般預設為cls

(3).cls 指向 類物件

(4).應用場景:當乙個方法中只涉及到靜態屬性的時候可以使用類方法(類方法用來修改類屬性)。

(5).使用 可以是 物件名.類方法名。或者是 類名.類方法名

class person(object):

name = 'zs'

@classmethod

def change_name(cls):

cls.name = 'ls'

print(cls.name)

person.change_name()

person = person() # ls

person.change_name() # ls

Python中類方法和靜態方法

要在類中使用靜態方法,需在靜態方法前面加上 staticmethod標記符,以表示下面的成員函式是靜態函式。使用靜態方法的好處 其函式不需要self引數,可以通過類呼叫該方法,不需要定義該類例項 當然通過類例項呼叫也沒有問題 類方法可以通過類或它的例項來呼叫,但 該方法的 第乙個引數cls是定義該方...

Python中的類方法和靜態方法

1.類方法 是類物件所擁有的方法,需要用修飾器 classmethod來標識其為類方法,對於類方法,第乙個引數必須是類物件,一般以cls作為第乙個引數 當然可以用其他名稱的變數作為其第乙個引數,但是大部分人都習慣以 cls 作為第乙個引數的名字,就最好用 cls 了 能夠通過例項物件和類物件去訪問。...

python中的類方法和靜態方法

python中至少有三種比較常見的方法型別,即例項方法,類方法 靜態方法。它們是如何定義的呢?如何呼叫的呢?它們又有何區別和作用呢?首先,這三種方法都定義在類中。例項方法 定義 第乙個引數必須是例項物件,該引數名一般約定為 self 通過它來傳遞例項的屬性和方法 也可以傳類的屬性和方法 呼叫 只能由...