Python完全支援定義類別方法,甚至支援定義靜態方法。 Python的類別方法和靜態方法很相似,它們都建議使用類別來呼叫(其實也可以使用物件來呼叫)。
類別方法和靜態方法的差異
Python會自動綁定類別方法的第一個參數,類別方法的第一個參數(通常建議參數名為cls)會自動綁定到類別本身;但對於靜態方法則不會自動綁定。
使用 @classmethod 修飾的方法就是類別方法;使用 @staticmethod 修飾的方法就是靜態方法。
相關推薦:《Python影片教學》
下面程式碼示範了定義類別方法和靜態方法:
class Bird: # classmethod修饰的方法是类方法 @classmethod def fly (cls): print('类方法fly: ', cls) # staticmethod修饰的方法是静态方法 @staticmethod def info (p): print('静态方法info: ', p) # 调用类方法,Bird类会自动绑定到第一个参数 Bird.fly() #① # 调用静态方法,不会自动绑定,因此程序必须手动绑定第一个参数 Bird.info('crazyit') # 创建Bird对象 b = Bird() # 使用对象调用fly()类方法,其实依然还是使用类调用, # 因此第一个参数依然被自动绑定到Bird类 b.fly() #② # 使用对象调用info()静态方法,其实依然还是使用类调用, # 因此程序必须为第一个参数执行绑定 b.info('fkit')
從上面粗體字程式碼可以看出,使用@classmethod 修飾的方法是類別方法,該類別方法定義了一個cls 參數,該參數會被自動綁定到Bird 類別本身,不管程式是使用類別還是物件呼叫該方法,Python 總是會將類別方法的第一個參數綁定到類別本身,如① 號、② 號程式碼的執行效果。
上面程式也使用@staticmethod 定義了一個靜態方法,程式同樣既可使用類別調用靜態方法,也可使用物件呼叫靜態方法,不管用哪種方式調用,Python 都不會為靜態方法執行自動綁定。
使用 Python 程式設計時,一般不需要使用類別方法或靜態方法,程式完全可以使用函數來取代類別方法或靜態方法。但是在特殊的場景(例如使用工廠模式)下,類別方法或靜態方法也是不錯的選擇。
以上是python類別方法和靜態方法的區別的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于Seaborn的相关问题,包括了数据可视化处理的散点图、折线图、条形图等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于进程池与进程锁的相关问题,包括进程池的创建模块,进程池函数等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于简历筛选的相关问题,包括了定义 ReadDoc 类用以读取 word 文件以及定义 search_word 函数用以筛选的相关内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于数据类型之字符串、数字的相关问题,下面一起来看一下,希望对大家有帮助。

VS Code的确是一款非常热门、有强大用户基础的一款开发工具。本文给大家介绍一下10款高效、好用的插件,能够让原本单薄的VS Code如虎添翼,开发效率顿时提升到一个新的阶段。

本篇文章给大家带来了关于Python的相关知识,其中主要介绍了关于numpy模块的相关问题,Numpy是Numerical Python extensions的缩写,字面意思是Python数值计算扩展,下面一起来看一下,希望对大家有帮助。

pythn的中文意思是巨蟒、蟒蛇。1989年圣诞节期间,Guido van Rossum在家闲的没事干,为了跟朋友庆祝圣诞节,决定发明一种全新的脚本语言。他很喜欢一个肥皂剧叫Monty Python,所以便把这门语言叫做python。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。