python面向?qū)ο笾杏腥N方法夷狰,分別為實(shí)例方法,靜態(tài)方法和類方法
實(shí)例方法
實(shí)例方法是在類中定義的方法郊霎,并且方法的第一個(gè)參數(shù)一般是self沼头,指向?qū)ο蟊旧怼J褂玫臅r(shí)候通過實(shí)例化的對(duì)象調(diào)用使用
對(duì)象名稱.方法名
例如:
class Person:
def __init__(self,name,age):
self.name=name
self.age=age
def get_name(self):
return self.name
def set_name(self,name):
self.name=name
return self.name
tom=Person('tom',23)
#使用實(shí)例方法
tom.get_name()
代碼中的get_name()就是實(shí)例方法书劝,使用時(shí)通過對(duì)象調(diào)用使用进倍。
實(shí)例方法的第一個(gè)參數(shù)為對(duì)象本身,默認(rèn)寫self代表對(duì)象庄撮,在傳參是可以忽略不填背捌。
比如,我們要使用set_name()方法的時(shí)候只需要tom.set_name('湯姆')就可以使用這個(gè)方法了
靜態(tài)方法
靜態(tài)方法也是定義在類中洞斯,不同的是在類中定義靜態(tài)方法時(shí)要在方法前加注解@staticmethod
如下代碼:
class Person:
#定義聲明靜態(tài)方法
#通過@staticmethod表示下面方法為靜態(tài)方法
@staticmethod
def num():
print('這是靜態(tài)方法')
def __init__(self,name,age):
self.name=name
self.age=age
def get_name(self):
return self.name
def set_name(self,name):
self.name=name
return self.name
靜態(tài)方法定義在類中毡庆,應(yīng)為在類中定義但是沒有self代表對(duì)象,所以靜態(tài)方法不能操作類中的變量
靜態(tài)方法可以再對(duì)象中共享烙如,當(dāng)對(duì)象沒有實(shí)例化是可以直接通過類本身直接調(diào)用
類方法
類方法也是定義在類中么抗,通過@classmethod表示下面方法是類方法,方法中的第一個(gè)參數(shù)為類本身,約定寫成cls
如下
class Person:
#定義類方法
#類方法通過@classmethod聲明亚铁,表示下面方法為類方法
@classmethod
def n(cls):
print('這是類方法')
def __init__(self,name,age):
self.name=name
self.age=age
def get_name(self):
return self.name
def set_name(self,name):
self.name=name
return self.name
類方法是直接將類本身當(dāng)成對(duì)象去操作蝇刀,在實(shí)際應(yīng)用中,只有我們需要操作類本身去操作類中的屬性時(shí)徘溢,我們可以在類中定義類方法