python 类方法 函数_Python OOP类中的几种函数或方法总结
概述
實例方法
使用實例調用時,默認傳遞實例本身到實例方法的第一個參數self
使用類調用時,必須傳遞一個實例對象到實例方法的第一個參數
靜態方法
使用實例調用和類調用效果相同;
類方法
裝飾器版:
使用實例調用和類調用效果相同;
classmethod(function)版:
在類中,盡量不要使用classmethod(function)實現類方法,會將其當做實例方法使用;
使用實例調用時,會默認傳遞實例本身到函數的第一個參數,如果函數的參數個數為0,則報錯;
如果必須這樣做,就使用類調用.
普通函數
在類中,盡量不要定義普通函數,會將其當做實例方法使用;
使用實例調用時,會默認傳遞實例本身到函數的第一個參數,如果函數的參數個數為0,則報錯;
如果必須這樣做,就使用類調用.
總而言之,除了裝飾器版的類方法和靜態方法外,其它方法與函數均可看做是實例方法.
代碼與運行結果
class A(object):
def instant_method(self,*args):
print('實例方法',*args)
@classmethod
def class_method_01(clz,*args):
"""第一個參數為class,調用時自動傳遞"""
print('類方法(裝飾器版)',*args)
def class_method_02(*args):
print('類方法(普通函數通過內置函數classmethond(function)轉換版)',*args)
classmethod(class_method_02)
@staticmethod
def static_method(*args):
print('靜態方法',*args)
def normal_function(*args):
print('普通函數',*args)
a=A()
# 調用實例方法
a.instant_method('通過實例調用')
A.instant_method(a,'通過類調用')
# 調用裝飾器版類方法
a.class_method_01('通過實例調用')
A.class_method_01('通過類調用')
# 調用classmethod(function)版類方法
# 通過實例調用時,會默認傳遞實例本身到方法的第一個參數
a.class_method_02('通過實例調用')
A.class_method_02('通過類調用')
# 調用靜態方法
a.static_method('通過實例調用')
A.static_method('通過類調用')
# 調用普通函數
# 通過實例調用時,會默認傳遞實例本身到方法的第一個參數
a.normal_function('通過實例調用')
A.normal_function('通過類調用')
輸出
實例方法 通過實例調用
實例方法 通過類調用
類方法(裝飾器版) 通過實例調用
類方法(裝飾器版) 通過類調用
類方法(普通函數通過內置函數classmethond(function)轉換版) 通過實例調用
類方法(普通函數通過內置函數classmethond(function)轉換版) 通過類調用
靜態方法 通過實例調用
靜態方法 通過類調用
普通函數 通過實例調用
普通函數 通過類調用
總結
以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對找一找教程網的支持。如果你想了解更多相關內容請查看下面相關鏈接
總結
以上是生活随笔為你收集整理的python 类方法 函数_Python OOP类中的几种函数或方法总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: centos8安装文件服务器,cento
- 下一篇: bind merge r 和join_R