Python 速查手冊

9.5 裝飾子相關的內建函數

本書已有新版,請參考 Python 簡易手冊 - 目錄

裝飾子相關的內建函數用來處理類別方法及 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 為參數,回傳 mstatic 方法,舉例如下

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
$

回上方目錄

相關教學影片

上一頁: 9.4 迭代器相關
Python 速查手冊 - 目錄
下一頁: 9.6 執行相關
回 Python 教材首頁
回程式語言教材首頁