在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

python靜態方法與類方法

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-07 16:56 ? 次閱讀

python靜態方法與類方法

1. 寫法上的差異

類的方法可以分為:

靜態方法:有 staticmethod 裝飾的函數

類方法:有 classmethod 裝飾的函數

實例方法:沒有任何裝飾器的普通函數

舉個例子,如下這段代碼中,run 普通的實例方法,eat 是靜態方法,jump 是類方法。

class Animal:
    def __init__(self, name):
        self.name = name

    def run(self):
        print(f"{self.name}跑起來啦")

    @staticmethod
    def eat():
        print("正在吃飯...")

    @classmethod
    def jump(cls, name):
        print(f"{name}跳起來啦")

這三種方法,在寫法有很大的區別:

1、普通的實例方法,在定義時,他的第一個方法固定是 self,如果是從實例調用,那么 self 參數 不需要傳入,如果是通過類調用,那么 self 要傳入已經實例化的對象。

>>> dog=Animal(name="小黑")
>>> dog.run()
小黑跑起來啦
>>> Animal.run(dog)
小黑跑起來啦

2、靜態方法,在定義時,不需要 self 參數。

>>> dog=Animal(name="小黑")
>>> dog.eat()
正在吃飯...
>>> Animal.eat()
正在吃飯...

3、類方法,在定義時,第一個參數固定是 cls,為 class 的簡寫,代表類本身。不管是通過實例還是類調用類方法,都不需要傳入 cls 的參數。

>>> dog=Animal(name="小黑")
>>> dog.jump("小黑")
小黑跳起來啦
>>> Animal.jump("小黑")
小黑跳起來啦

2. 方法與函數區別

在前面,我們很經常提到方法和函數,為免有同學將他們混為一談,我這里總結一下他們的區別。

在 Python 3.x 中,

普通函數(未定位在類里)和靜態方法,都是函數(function )。

實例方法(@staticmethod)和類方法,都是方法(method )。

這些結論其實都可以使用 type 函數得到驗證。

先準備如下代碼

class Animal:
    def __init__(self, name):
        self.name = name

    def run(self):
        print(f"{self.name}跑起來啦")

    @staticmethod
    def eat():
        print("正在吃飯...")

    @classmethod
    def jump(cls, name):
        print(f"{name}跳起來啦")

def demo_func():
    pass

然后進入 Python Console 模式

>>> type(demo_func)  # 普通函數

>>> type(dog.eat)   # 靜態方法

>>>
>>> type(dog.run)  # 實例方法

>>> type(dog.jump)  # 類方法

方法是一種和對象(實例或者類)綁定后的特殊函數。

方法本質上還是函數,不同之處在于它與對象進行綁定。

審核編輯:符乾江

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 面向對象
    +關注

    關注

    0

    文章

    64

    瀏覽量

    10073
  • python
    +關注

    關注

    56

    文章

    4821

    瀏覽量

    85662
收藏 人收藏

    評論

    相關推薦

    Python中dict支持多個key的方法

    ? 在Python中,字典(dict)是一種非常強大的數據結構,它允許我們通過鍵(key)來存儲和檢索值(value)。有時候,我們可能想要根據多個鍵來檢索或操作字典中的數據。雖然Python的字典
    的頭像 發表于 11-29 15:59 ?358次閱讀

    一種半動態環境中的定位方法

    在非靜態環境中進行地圖繪制和定位是機器人學的基本問題。之前的方法大多關注靜態和高度動態的物體,但在半動態環境中,如果不考慮低動態物體(如停放的汽車和行人),可能會導致定位失敗。我們提出了語義建圖
    的頭像 發表于 09-30 14:40 ?428次閱讀
    一種半動態環境中的定位<b class='flag-5'>方法</b>

    放大電路動態分析的基本方法

    等效為線性電路的方法。這種方法的核心在于,當晶體管在小信號(微變量)情況下工作時,其在靜態工作點附近小范圍內的特性曲線可以用直線近似代替,從而將其線性化。 具體步驟如下: 確定靜態工作
    的頭像 發表于 09-23 10:31 ?1898次閱讀

    手機靜態獨享ip搭建方法,是如何操作的?

    手機靜態獨享IP的搭建主要涉及到選擇一個可靠的代理服務提供商,并從該服務商處獲取靜態獨享IP地址及其配置信息,然后在手機上進行相應的網絡設置。
    的頭像 發表于 09-13 09:41 ?831次閱讀
    手機<b class='flag-5'>靜態</b>獨享ip搭建<b class='flag-5'>方法</b>,是如何操作的?

    變頻器靜態測試和動態測試方法

    在變頻器的維護和故障診斷中,靜態測試和動態測試是兩項不可或缺的步驟。這兩測試為技術人員提供了判斷變頻器內部組件健康狀況的依據。 一、靜態測試 1. 整流電路測試 靜態測試的第一步涉及
    的頭像 發表于 08-19 17:47 ?1993次閱讀

    對放大電路的分析方法介紹

    放大電路是電子技術中非常重要的組成部分,它廣泛應用于信號處理、通信、測量等領域。對于放大電路的分析,通常可以分為直流分析和交流分析兩種情況。下面我們將介紹這兩種分析方法。 直流分析 直流分析主要關注
    的頭像 發表于 08-07 10:08 ?1002次閱讀

    鑒源實驗室·ISO 26262中測試用例的得出方法-等價的生成和分析

    標準規范中給出了單元、集成、系統測試各階段的建議測試使用方法,設計生成測試用例的建議方法包括需求分析、等價的生成和分析、邊界值分析、基于已有經驗和知識的錯誤推測等等,從本篇開始我們對測試用例設計生成的
    的頭像 發表于 07-30 15:37 ?740次閱讀
    鑒源實驗室·ISO 26262中測試用例的得出<b class='flag-5'>方法</b>-等價<b class='flag-5'>類</b>的生成和分析

    5水晶頭接線方法

    水晶頭的接線方法主要遵循EIA/TIA的布線標準,包括T568A和T568B兩種線序。以下是詳細的接線步驟: 一、準備工具和材料 網線鉗:用于剪切網線和壓緊水晶頭。 五網線:通常為雙絞線,包含
    的頭像 發表于 07-25 10:25 ?4260次閱讀

    如何實現Python復制文件操作

    Python 中有許多“開蓋即食”的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的
    的頭像 發表于 07-18 14:53 ?603次閱讀

    Python中變量在內存中的存儲方式

    方法使用@classmethod裝飾器定義,它們的第一個參數通常命名為cls,代表本身。
    的頭像 發表于 07-16 16:29 ?400次閱讀

    基于Python的深度學習人臉識別方法

    基于Python的深度學習人臉識別方法是一個涉及多個技術領域的復雜話題,包括計算機視覺、深度學習、以及圖像處理等。在這里,我將概述一個基本的流程,包括數據準備、模型選擇、訓練過程、以及測試與評估,并附上簡單的代碼示例。
    的頭像 發表于 07-14 11:52 ?1426次閱讀

    python訓練出的模型怎么調用

    Python中,訓練出的模型可以通過多種方式進行調用。 1. 模型保存與加載 在Python中,訓練好的模型需要被保存,以便在其他程序或會話中使用。以下是一些常用的模型保存和加載方法。 1.1
    的頭像 發表于 07-11 10:15 ?2995次閱讀

    AB放大器的工作特性和偏置方法

    AB放大器是音頻放大技術領域中的一重要設備,其工作特性和偏置方法對于實現高質量的音頻輸出至關重要。本文將詳細闡述AB放大器的工作特性,包括其工作原理、性能優勢以及存在的局限性,并
    的頭像 發表于 05-23 16:00 ?1522次閱讀

    靜態C-V測量中的漏電流校正影響

    MOS結構中的柵極電流會使準靜態的結果發生變形。本文提出并討論了幾種校正方法來補償這種影響。對所有方法的局限性進行了量化,并提出了變通方法
    發表于 05-22 15:13 ?0次下載

    Go語言中的函數、方法與接口詳解

    Go 沒有,不過可以為結構體類型定義方法方法就是一帶特殊的接收者參數的函數。方法接收者在它自己的參數列表內,位于 func 關鍵字和
    的頭像 發表于 04-23 16:21 ?1041次閱讀
    主站蜘蛛池模板: 国产欧美日韩在线人成aaaa | 91av免费| 日本二区免费一片黄2019 | 宅男lu66国产在线播放 | 老师下面很湿很爽很紧 | 日本一区视频在线播放 | 男人的j桶女人的j视频 | 毛片福利 | 婷婷激情视频 | 国产秦先生大战白丝97在线 | 欧洲一卡二卡乱码新区 | 色图综合网 | 午夜神马嘿嘿 | 久久综合九色欧美综合狠狠 | 毛片午夜 | 久久综合香蕉久久久久久久 | 男男宿舍高h炒肉bl 男男污肉高h坐便器调教 | 亚洲视频色 | 五月天丁香激情 | 宅男噜噜噜66 | 手机看片福利1024 | 六月丁香啪啪六月激情 | 六月婷婷综合 | 国产三级视频在线播放 | 色色色色色色网 | 天天躁夜夜躁狠狠躁2018a | 一级黄色录像视频 | 97av在线播放 | 久久综合丁香 | 在线五月婷婷 | 国产美女亚洲精品久久久久久 | 亚洲国产香蕉视频欧美 | 欧美777| 天天摸日日舔 | 女攻各种play男受h | 国产一区二区高清在线 | 天天操人人射 | 麻豆三级视频 | 一级特级女人18毛片免费视频 | 亚洲你懂的 | 色狠狠狠色噜噜噜综合网 |