python 類方法 物件方法 靜態方法

2021-07-23 05:31:31 字數 1369 閱讀 5873

1、我們已經討論了類/物件可以擁有像函式一樣的方法,這些

物件方法與函式的區別只是乙個額外的

self

變數# -

*- coding:utf-8 -*-

#!/usr/bin/python

# filename: method.py

class person:

grade=1

def__init__

(self,name)

:self.name = name

def sayhi(self)

:#加self區別於普通函式

print

'hello, your name is?'

,self.name

@staticmethod #宣告靜態,去掉則編譯報錯;還有靜態方法不能訪問類變數和例項變數

def sayname():

#使用了靜態方法,則不能再使用self

print

"my name is king"

#,grade,

#self.name

@classmethod #類方法

def classmethod(cls)

:print

("class method"

)p = person(

"king"

)p.sayhi(

)p.sayname(

)p.classmethod(

)person.classmethod(

)輸出:

hello, your name is? king

my name is king

class method

class method

2、靜態方法

要在類中使用靜態方法,需在類成員函式前面加上@staticmethod標記符,以表示下面的成員函式是靜態函式。使用靜態方法的好處是,不需要定義例項即可使用這個方法。另外,多個例項共享此靜態方法。

3、 類方法

類方法與普通的成員函式和靜態函式有不同之處,在接觸的語言中好像也沒見過這種語義,看它的定義: 

乙個類方法就可以通過類或它的例項來呼叫的方法, 不管你是用類來呼叫這個方法還是類例項呼叫這個方法,該方法的第乙個引數總是定義該方法的類物件。 

記住:方法的第乙個引數都是類物件而不是例項物件. 

按照慣例,類方法的第乙個形參被命名為 cls.任

何時候定義類方法都不是必須的

(類方法能實現的功能都可以通過定義乙個普通函式來實現,只要這個函式接受乙個類物件做為引數就可以了). 

python中實現靜態方法和類方法都是依賴於python的修飾器來實現的。

物件方法有self引數,類方法有cls引數,靜態方法是不需要這些附加引數的。

python 類方法 物件方法 靜態方法

1 我們已經討論了類 物件可以擁有像函式一樣的方法,這些物件方法與函式的區別只是乙個額外的self變數 coding utf 8 usr bin python filename method.py class person grade 1 def init self,name self.name n...

物件方法 靜態方法 類方法

1 例項方法 物件方法 例項方法或者叫物件方法,指的是我們在類中定義的普通方法。只有例項化物件後才可以使用的方法,該方法的第乙個引數接收的一定是物件本身。class people def hello self self表示物件本身 print hello word 2 靜態本身 1 格式 在方法上面...

關於Python類 方法 物件 例項 靜態方法

類裡面的方法有3種 類的例項方法 平時常用的帶有self的方法 靜態方法 staticmethod 類方法 classmethod 這裡主要看一下類的例項方法和靜態方法的區別 1 例項方法只能被例項物件呼叫,第乙個引數必須要預設傳例項物件,一般習慣用self 2 靜態方法 由 staticmetho...