您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關python類方法和普通方法區別是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
python類方法和普通方法區別
下面用例子的方式,說明其區別。
首先, 定義一個類,包括2個方法:
class Apple(object): def get_apple(self, n): print "apple: %s,%s" % (self,n) @classmethod def get_class_apple(cls, n): print "apple: %s,%s" % (cls,n)
類的普通方法
類的普通方法,需要類的實例調用。
a = Apple() a.get_apple(2)
輸出結果
apple: <__main__.Apple object at 0x7fa3a9202ed0>,2
再看綁定關系:
print (a.get_apple) <bound method Apple.get_apple of <__main__.Apple object at 0x7fa3a9202ed0>>
類的普通方法,只能用類的實例去使用。如果用類調用普通方法,出現如下錯誤:
Apple.get_apple(2) Traceback (most recent call last): File "static.py", line 22, in <module> Apple.get_apple(2) TypeError: unbound method get_apple() must be called with Apple instance as first argument (got int instance instead)
類方法
類方法,表示方法綁定到類。
a.get_class_apple(3) Apple.get_class_apple(3) apple: <class '__main__.Apple'>,3 apple: <class '__main__.Apple'>,3
再看綁定關系:
print (a.get_class_apple) print (Apple.get_class_apple)
輸出結果,用實例和用類調用是一樣的。
<bound method type.get_class_apple of <class '__main__.Apple'>> <bound method type.get_class_apple of <class '__main__.Apple'>>
關于python類方法和普通方法區別是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。