一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python靜態(tài)方法與類方法

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-07 16:56 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python靜態(tài)方法與類方法

1. 寫法上的差異

類的方法可以分為:

靜態(tài)方法:有 staticmethod 裝飾的函數(shù)

類方法:有 classmethod 裝飾的函數(shù)

實(shí)例方法:沒有任何裝飾器的普通函數(shù)

舉個(gè)例子,如下這段代碼中,run 普通的實(shí)例方法,eat 是靜態(tài)方法,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}跳起來啦")

這三種方法,在寫法有很大的區(qū)別:

1、普通的實(shí)例方法,在定義時(shí),他的第一個(gè)方法固定是 self,如果是從實(shí)例調(diào)用,那么 self 參數(shù) 不需要傳入,如果是通過類調(diào)用,那么 self 要傳入已經(jīng)實(shí)例化的對象。

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

2、靜態(tài)方法,在定義時(shí),不需要 self 參數(shù)。

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

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

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

2. 方法與函數(shù)區(qū)別

在前面,我們很經(jīng)常提到方法和函數(shù),為免有同學(xué)將他們混為一談,我這里總結(jié)一下他們的區(qū)別。

在 Python 3.x 中,

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

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

這些結(jié)論其實(shí)都可以使用 type 函數(shù)得到驗(yàn)證。

先準(zhǔn)備如下代碼

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

然后進(jìn)入 Python Console 模式

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

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

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

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

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

方法本質(zhì)上還是函數(shù),不同之處在于它與對象進(jìn)行綁定。

審核編輯:符乾江

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    淺談半導(dǎo)體薄膜制備方法

    本文簡單介紹一下半導(dǎo)體鍍膜的相關(guān)知識,基礎(chǔ)的薄膜制備方法包含熱蒸發(fā)和濺射法兩。
    的頭像 發(fā)表于 06-26 14:03 ?336次閱讀
    淺談半導(dǎo)體薄膜制備<b class='flag-5'>方法</b>

    詳解ADC電路的靜態(tài)仿真和動態(tài)仿真

    ADC電路主要存在靜態(tài)仿真和動態(tài)仿真兩仿真,針對兩種不同的仿真,我們存在不同的輸入信號和不同的數(shù)據(jù)采樣,因此靜態(tài)仿真和動態(tài)仿真是完全不同的兩個(gè)概念,所以設(shè)置的參數(shù)不同。
    的頭像 發(fā)表于 06-05 10:19 ?812次閱讀
    詳解ADC電路的<b class='flag-5'>靜態(tài)</b>仿真和動態(tài)仿真

    數(shù)字IC設(shè)計(jì):方法、技巧與實(shí)踐

    方法,以及和綜合關(guān)系密切的靜態(tài)時(shí)間分析和一致性檢查技術(shù)。最后一章介紹了芯片設(shè)計(jì)的項(xiàng)目管理。 獲取完整文檔資料可下載附件哦?。。?!如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評論支持一下哦~
    發(fā)表于 05-28 16:06

    Python中dict支持多個(gè)key的方法

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

    鑒源實(shí)驗(yàn)室·測試設(shè)計(jì)方法-因果圖

    上篇文章(ISO 26262中測試用例的得出方法-邊界值分析)我們介紹了等價(jià)方法和邊界值方法,這兩種方法廣泛應(yīng)用并適用于各種類型測試的設(shè)計(jì)
    的頭像 發(fā)表于 11-05 15:17 ?549次閱讀
    鑒源實(shí)驗(yàn)室·測試設(shè)計(jì)<b class='flag-5'>方法</b>-因果圖

    SegVG視覺定位方法的各個(gè)組件

    :兩階段方法、單 階段方法和基于變換器(Transformer)的方法。盡管這些方法取得了良好的效果,但在注釋的利用上仍顯得不 足,尤其
    的頭像 發(fā)表于 10-28 13:59 ?932次閱讀
    SegVG視覺定位<b class='flag-5'>方法</b>的各個(gè)組件

    一種半動態(tài)環(huán)境中的定位方法

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

    放大電路動態(tài)分析的基本方法

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

    手機(jī)靜態(tài)獨(dú)享ip搭建方法,是如何操作的?

    手機(jī)靜態(tài)獨(dú)享IP的搭建主要涉及到選擇一個(gè)可靠的代理服務(wù)提供商,并從該服務(wù)商處獲取靜態(tài)獨(dú)享IP地址及其配置信息,然后在手機(jī)上進(jìn)行相應(yīng)的網(wǎng)絡(luò)設(shè)置。
    的頭像 發(fā)表于 09-13 09:41 ?1145次閱讀
    手機(jī)<b class='flag-5'>靜態(tài)</b>獨(dú)享ip搭建<b class='flag-5'>方法</b>,是如何操作的?

    DC/DC模擬的基本使用方法和特性確認(rèn)方法

    本篇介紹了DC/DC模擬的基本使用方法及確認(rèn)基本特性的方法
    的頭像 發(fā)表于 08-20 17:08 ?1379次閱讀
    DC/DC模擬的基本使用<b class='flag-5'>方法</b>和特性確認(rèn)<b class='flag-5'>方法</b>

    變頻器靜態(tài)測試和動態(tài)測試方法

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

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

    放大電路是電子技術(shù)中非常重要的組成部分,它廣泛應(yīng)用于信號處理、通信、測量等領(lǐng)域。對于放大電路的分析,通??梢苑譃橹绷鞣治龊徒涣鞣治鰞煞N情況。下面我們將介紹這兩種分析方法。 直流分析 直流分析主要關(guān)注
    的頭像 發(fā)表于 08-07 10:08 ?1293次閱讀

    C功率放大器的導(dǎo)通角計(jì)算方法

    ,晶體管的導(dǎo)通角通常小于180度,這意味著晶體管在每個(gè)周期內(nèi)只導(dǎo)通了一部分時(shí)間。這種設(shè)計(jì)可以顯著降低功率損耗,提高放大器的效率。 C功率放大器的導(dǎo)通角計(jì)算方法 C功率放大器的導(dǎo)通角可以通過以下公式計(jì)算: 導(dǎo)通角 = (Vp/
    的頭像 發(fā)表于 08-01 10:42 ?2827次閱讀

    鑒源實(shí)驗(yàn)室·ISO 26262中測試用例的得出方法-等價(jià)的生成和分析

    標(biāo)準(zhǔn)規(guī)范中給出了單元、集成、系統(tǒng)測試各階段的建議測試使用方法,設(shè)計(jì)生成測試用例的建議方法包括需求分析、等價(jià)的生成和分析、邊界值分析、基于已有經(jīng)驗(yàn)和知識的錯(cuò)誤推測等等,從本篇開始我們對測試用例設(shè)計(jì)生成的
    的頭像 發(fā)表于 07-30 15:37 ?956次閱讀
    鑒源實(shí)驗(yàn)室·ISO 26262中測試用例的得出<b class='flag-5'>方法</b>-等價(jià)<b class='flag-5'>類</b>的生成和分析

    5水晶頭接線方法

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