裝飾子相關的內建函數用來處理類別方法及 static 方法,以下為列表說明
參數版本 | 功能 |
---|---|
classmethod(m) | 以方法 m 為參數,回傳 m 為類別方法。 |
staticmethod(m) | 以方法 m 為參數,回傳 m 為 static 方法。 |
classmethod()
classmethod(m) 以方法 m 為參數,回傳 m 為類別方法,舉例如下
class Demo:
def demo(cls):
print("demo")
demo = classmethod(demo)
Demo.demo()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fdecorator01.py
# 功能:示範內建函數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 fdecorator01.py |
demo |
$ |
若改以裝飾子 @classmethod ,可以簡化以方法當參數又要回傳的寫法,例如
class Demo:
@classmethod
def demo(cls):
print("demo")
Demo.demo()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fdecorator02.py
# 功能:示範內建函數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 fdecorator02.py |
demo |
$ |
staticmethod()
staticmethod(m) 以方法 m 為參數,回傳 m 為 static 方法,舉例如下
class Demo:
def demo():
print("demo")
demo = staticmethod(demo)
Demo.demo()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fdecorator03.py
# 功能:示範內建函數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 fdecorator03.py |
demo |
$ |
若改以裝飾子 @staticmethod ,可以簡化以方法當參數又要回傳的寫法,例如
class Demo:
@staticmethod
def demo():
print("demo")
Demo.demo()
#《程式語言教學誌》的範例程式
# http://kaiching.org/
# 檔名:fdecorator04.py
# 功能:示範內建函數
# 作者:張凱慶
於命令列執行以上程式,結果如下
$ python3 fdecorator04.py |
demo |
$ |
相關教學影片