python中 普通方法_python中普通方法classmethod和staticmethod的区别与用法
class Foo(object):
#實(shí)例方法,第一個(gè)承諾書必須是實(shí)例對(duì)象,一般習(xí)慣用self.
def ins_m(self):
print("是類{}的實(shí)例方法,只能被實(shí)例調(diào)用".format(Foo))
#類方法,第一個(gè)參數(shù)必須是類對(duì)象,一般習(xí)慣使用cls.使用@classmethod裝飾器裝飾
@classmethod
def cla_m(cls):
print('class method')
#j靜態(tài)方法,參數(shù)沒有要求,和類沒有綁定關(guān)系,就是一個(gè)普通的方法,
@staticmethod
def sta_m():
print('static method')
foo=Foo() #創(chuàng)建一個(gè)實(shí)例
#實(shí)例方法只能被實(shí)例調(diào)用 (如果把實(shí)例方法的參數(shù)去掉,可以被類調(diào)用,不能被實(shí)例調(diào)用!)
#類方法可以被類和實(shí)例調(diào)用
#靜態(tài)方法可以被類和實(shí)例調(diào)用 (不需要參數(shù))
因此:當(dāng)類中的某個(gè)方法是一個(gè)普通方法時(shí),加一個(gè)staticmehod裝飾器,不需要添加實(shí)例參數(shù)。此方法可以用外部函數(shù)替換。
另外還有一個(gè)abstractmethod,抽象類,一般在基類中使用,只能被繼承,不能被實(shí)例化!
總結(jié)
以上是生活随笔為你收集整理的python中 普通方法_python中普通方法classmethod和staticmethod的区别与用法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java入力项目无法设定到form_ht
- 下一篇: csv数据去重 python_pytho