python對象屬性,python中屬性是什么意思啊_python中的靜態屬性和方法是什么意思

 2023-10-21 阅读 35 评论 0

摘要:Python 的類方法和靜態方法很相似,它們都推薦使用類來調用(其實也可使用對象來調用)。類方法和靜態方法的區別在于,Python會自動綁定類方法的第一個參數,類方法的第一個參數(通常建議參數名為 cls)會自動綁定到類python對象屬性、本身;但對于靜態

Python 的類方法和靜態方法很相似,它們都推薦使用類來調用(其實也可使用對象來調用)。

類方法和靜態方法的區別在于,Python會自動綁定類方法的第一個參數,類方法的第一個參數(通常建議參數名為 cls)會自動綁定到類

python對象屬性、本身;但對于靜態方法則不會自動綁定。

推薦:Python教程

使用 @classmethod 修飾的方法就是類方法;使用 @staticmethod 修飾的方法就是靜態方法。

python3靜態方法和類方法。下面代碼示范了定義類方法和靜態方法:class?Bird:

#?classmethod修飾的方法是類方法

@classmethod

python 全局變量?def?fly?(cls):

print('類方法fly:?',?cls)

#?staticmethod修飾的方法是靜態方法

python4。@staticmethod

def?info?(p):

print('靜態方法info:?',?p)

python與JAVA、#?調用類方法,Bird類會自動綁定到第一個參數

Bird.fly()??#①

#?調用靜態方法,不會自動綁定,因此程序必須手動綁定第一個參數

python方法,Bird.info('crazyit')

#?創建Bird對象

b?=?Bird()

#?使用對象調用fly()類方法,其實依然還是使用類調用,

#?因此第一個參數依然被自動綁定到Bird類

b.fly()??#②

#?使用對象調用info()靜態方法,其實依然還是使用類調用,

#?因此程序必須為第一個參數執行綁定

b.info('fkit')

從上面粗體字代碼可以看出,使用 @classmethod 修飾的方法是類方法,該類方法定義了一個 cls 參數,該參數會被自動綁定到 Bird 類

本身,不管程序是使用類還是對象調用該方法,Python 始終都會將類方法的第一個參數綁定到類本身,如 ① 號、② 號代碼的執行效

果。

上面程序還使用 @staticmethod 定義了一個靜態方法,程序同樣既可使用類調用靜態方法,也可使用對象調用靜態方法,不管用哪種方

式調用,Python 都不會為靜態方法執行自動綁定。

在使用 Python 編程時,一般不需要使用類方法或靜態方法,程序完全可以使用函數來代替類方法或靜態方法。但是在特殊的場景(比如

使用工廠模式)下,類方法或靜態方法也是不錯的選擇。

更多技術請關注云海天Python教程。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/162116.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息