欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解python中靜態(tài)方法staticmethod用法

 更新時間:2022年07月25日 14:48:59   作者:IT之一小佬  
本文主要介紹了python中靜態(tài)方法staticmethod用法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

在開發(fā)的時候, 可以使用類對方法進行封裝,如果某一個方法需要訪問到對象的實例屬性,可以把這個方法封裝成一個實例方法。如果某一個方法不需要訪問對象的實例屬性,但是需要訪問到類的類屬性,這個時候就可以考慮把這個方法封裝成一個類方法。一個實例方法, 一個類方法,這是兩種方法類型,但是在開發(fā)中還有一種情況,如果要封裝的某一個方法,既不需要訪問到對象的實例屬性,也不需要訪問類的類屬性,這個時候就可以考慮把這個方法封裝成一個靜態(tài)方法。

在開發(fā)中,如果類中的某個方法既不需要訪問實例屬性或者調(diào)用實例方法,同時也不需要訪問類屬性或者調(diào)用類方法,這個時候就可以把這個方法封裝成靜態(tài)方法。需要在def關(guān)鍵字上方增加一個靜態(tài)方法的修飾符,@staticmethod。

語法格式如下:

@staticmethod
def 靜態(tài)方法名():
    pass

在Python里面靜態(tài)方法和我們平時寫的函數(shù)def是一樣的。唯一不同之處就是它可以存在于類中,不同實例化類也可以調(diào)用。

需要通過裝飾器 @staticmethod 來進行修飾, 靜態(tài)方法既不需要傳遞類對象也不需要傳遞實例對象(形參沒有self/cls ) 。

靜態(tài)方法 也能夠通過 實例對象 和 類對象 去訪問。

當(dāng)方法中 既不需要使用實例對象 ( 如實例對象,實例屬性 ) , 也不需要使用類對象 ( 如類屬性、類方法、創(chuàng)建實例等) 時,定義靜態(tài)方法

取消不需要的參數(shù)傳遞 ,有利于 減少不必要的內(nèi)存占存和性能消耗。

 示例代碼:

class Dog(object):
    @staticmethod
    def info_print():
        print('這是?個狗類,?于創(chuàng)建狗實例....')
 
 
wangcai = Dog()
# 靜態(tài)?法既可以使?對象訪問?可以使?類訪問
wangcai.info_print()
Dog.info_print()

運行結(jié)果:

在類中編寫靜態(tài)方法和類的普通方法

class Static(object):
    @staticmethod
    def test_static():
        print('I am staticmethod')
 
    def test_def(self):
        print('I am not staticmethod')
 
 
#  調(diào)用靜態(tài)方法
Static.test_static()
 
#  實例化調(diào)用靜態(tài)方法
obj = Static()
obj.test_static()

運行結(jié)果:

從上述代碼和運行結(jié)果可以看出靜態(tài)方法可以直接被調(diào)用,且不用加任何參數(shù)、self也不要。靜態(tài)方法存在的意義其實就是讓函數(shù)歸類,緊耦合。

在類對象中定義的靜態(tài)方法:

class MyClass(object):
    # 在類對象中定義的靜態(tài)方法
    @staticmethod
    def tom(age, weight):  # 沒有 self
        print(age, weight)
 
    @classmethod
    def get_info(cls):
        # 通過類對象調(diào)用類方法
        MyClass.tom(25, 66)
 
    def my_info(self):
        # 通過實例對象調(diào)用靜態(tài)方法
        self.tom(26, 77)
 
 
# 通過類對象調(diào)用靜態(tài)方法
MyClass.tom(23, 55)  # 23 55
 
# 實例化
mc = MyClass()
 
# 通過實例對象調(diào)用靜態(tài)方法
mc.tom(24, 65)  # 24 65
 
# 通過類對象調(diào)用類方法
mc.get_info()  # 25 66
 
mc.my_info()  # 26 77

運行結(jié)果:

實例方法、類方法、靜態(tài)方法綜合例子

class MyClass(object):
    def __init__(self, name):
        self.name = name
 
    def get_info(self):  # 定義實例方法,有 self 參數(shù)
        print("實例方法")
 
    @classmethod
    def get_other(cls):  # 定義實例方法,有 cls 參數(shù)
        print("類方法")
 
    @staticmethod
    def get_my_class():  # 定義靜態(tài)方法,無默認參數(shù)
        print("靜態(tài)方法")
 
 
# 實例化
mc = MyClass("tom")
 
# 調(diào)用實例方法
mc.get_info()  # 實例方法
 
# 調(diào)用類方法,建議通過 類對象.類方法([實參]) 方法調(diào)用
MyClass.get_other()  # 類方法
 
# 調(diào)用靜態(tài)方法,建議通過 類對象.類方法([實參]) 方法調(diào)用
MyClass.get_my_class()  # 靜態(tài)方法

運行結(jié)果:

到此這篇關(guān)于詳解python中靜態(tài)方法staticmethod用法的文章就介紹到這了,更多相關(guān)python staticmethod內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中的django是做什么的

    python中的django是做什么的

    在本篇文章里小編給大家整理了關(guān)于python中的django作用以及相關(guān)基礎(chǔ)知識點,需要的朋友們學(xué)習(xí)下。
    2020-07-07
  • Pandas數(shù)據(jù)分析的一些常用小技巧

    Pandas數(shù)據(jù)分析的一些常用小技巧

    這篇文章主要介紹了Pandas數(shù)據(jù)分析的一些常用小技巧,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-02-02
  • pandas通過字典生成dataframe的方法步驟

    pandas通過字典生成dataframe的方法步驟

    這篇文章主要介紹了pandas通過字典生成dataframe的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python+Django在windows下的開發(fā)環(huán)境配置圖解

    Python+Django在windows下的開發(fā)環(huán)境配置圖解

    Python+Django在windows下的開發(fā)環(huán)境配置圖解教程,需要的朋友可以參考下。
    2009-11-11
  • 一小時學(xué)會TensorFlow2之基本操作2實例代碼

    一小時學(xué)會TensorFlow2之基本操作2實例代碼

    這篇文章主要介紹了TensorFlow2的基本操作和實例代碼,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • Python填充任意顏色,不同算法時間差異分析說明

    Python填充任意顏色,不同算法時間差異分析說明

    這篇文章主要介紹了Python填充任意顏色,不同算法時間差異分析說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 如何使用Python獲取昨天的日期

    如何使用Python獲取昨天的日期

    Python 是一種高級語言,可用于數(shù)據(jù)科學(xué)和機器學(xué)習(xí),以使用 Python 的數(shù)據(jù)結(jié)構(gòu)訓(xùn)練 AI,它用于編寫各種應(yīng)用程序,從 Web 和桌面到操作系統(tǒng)級程序,這篇文章主要介紹了在 Python 中獲取昨天的日期,需要的朋友可以參考下
    2023-05-05
  • Python+Seaborn繪制分布圖的示例詳解

    Python+Seaborn繪制分布圖的示例詳解

    這篇文章我們將介紹10個示例,從而幫助大家掌握如何使用Python中的Seaborn庫來創(chuàng)建圖表。文中示例代碼講解詳細,感興趣的可以了解一下
    2022-05-05
  • Python Pygame制作雪夜煙花景

    Python Pygame制作雪夜煙花景

    這篇文章主要為大家詳細介紹了如何利用Python中的Pygame模塊制作一個雪夜煙花景,文中的示例代碼講解詳細,對我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-01-01
  • Python利用AutoGrad實現(xiàn)自動計算函數(shù)斜率和梯度

    Python利用AutoGrad實現(xiàn)自動計算函數(shù)斜率和梯度

    AutoGrad 是一個老少皆宜的 Python 梯度計算模塊。對于大學(xué)生、機器學(xué)習(xí)愛好者而言,你只需要傳遞給它Numpy這樣的標(biāo)準(zhǔn)數(shù)據(jù)庫下編寫的損失函數(shù),它就可以自動計算損失函數(shù)的導(dǎo)數(shù)(梯度)。本文將從普通斜率計算開始,介紹到如何只使用它來實現(xiàn)一個邏輯回歸模型
    2022-07-07

最新評論