相關(guān)推薦
您可能對(duì)下面課程感興趣
Python上位機(jī)開(kāi)發(fā)教程

105小節(jié)已有8684人學(xué)過(guò)

Python上位機(jī)開(kāi)發(fā)類(lèi)方法和靜態(tài)方法
發(fā)布時(shí)間:2024-11-20 09:32 [ 我要自學(xué)網(wǎng)原創(chuàng) ] 發(fā)布人: 快樂(lè)小女 閱讀: 113

'''
類(lèi)方法和靜態(tài)方法是兩種與類(lèi)相關(guān)的方法類(lèi)型。

類(lèi)方法:使用 @classmethod 裝飾器定義。類(lèi)方法的第一個(gè)參數(shù)通常命名為 cls ,用于引用類(lèi)本身,而不是類(lèi)的實(shí)例。
類(lèi)方法可以訪問(wèn)和修改類(lèi)級(jí)別的屬性,也可以創(chuàng)建和操作類(lèi)的實(shí)例。

class MyClass:
    class_var = 0

    @classmethod
    def class_method(cls):
        cls.class_var += 1
        print(f"Class variable: {cls.class_var}")


靜態(tài)方法:使用 @staticmethod 裝飾器定義。靜態(tài)方法不接收隱式的第一個(gè)參數(shù)(無(wú)論是實(shí)例還是類(lèi)),
它的行為類(lèi)似于一個(gè)普通函數(shù),但被包含在類(lèi)的命名空間中,主要用于組織代碼邏輯上與類(lèi)相關(guān)的功能。

class MyClass:

    @staticmethod
    def static_method():
        print("This is a static method")

類(lèi)方法和靜態(tài)方法的主要區(qū)別在于:
    類(lèi)方法可以訪問(wèn)和修改類(lèi)級(jí)別的屬性,而靜態(tài)方法不能。
    類(lèi)方法的第一個(gè)參數(shù)是類(lèi)本身,而靜態(tài)方法沒(méi)有這樣的特殊參數(shù)。

類(lèi)方法的使用場(chǎng)景:
數(shù)據(jù)加載與共享:如果應(yīng)用需要從外部文件或數(shù)據(jù)庫(kù)加載一些全局?jǐn)?shù)據(jù),這些數(shù)據(jù)對(duì)于該類(lèi)的所有實(shí)例都是相同的,可以使用類(lèi)方法來(lái)加載和管理這些數(shù)據(jù)。
配置管理:用于讀取和設(shè)置應(yīng)用程序的全局配置信息。
實(shí)例創(chuàng)建的定制:根據(jù)不同的條件創(chuàng)建具有特定屬性的類(lèi)實(shí)例。
管理與類(lèi)相關(guān)的資源:例如,打開(kāi)和關(guān)閉與類(lèi)相關(guān)的網(wǎng)絡(luò)連接或文件句柄。

靜態(tài)方法的使用場(chǎng)景:
工具函數(shù):執(zhí)行一些通用的、與類(lèi)邏輯相關(guān)但不依賴于類(lèi)或?qū)嵗隣顟B(tài)的操作,例如數(shù)據(jù)驗(yàn)證、格式轉(zhuǎn)換、計(jì)算等。
解析特定格式的數(shù)據(jù):例如,解析從下位機(jī)接收到的特定格式的數(shù)據(jù)包。
'''

import configparser
from getpass import fallback_getpass


class ConfigHandler:
    _config = None  #類(lèi)屬性,存儲(chǔ)配置信息

    @classmethod
    def load_config(cls,file_path):
        cls._config = configparser.ConfigParser()
        cls._config.read(file_path)

    @staticmethod
    def get_value(section,key):
        if ConfigHandler._config  is None:
            raise  Exception("請(qǐng)先調(diào)用 load_config方法加載配置文件")
        return ConfigHandler._config.get(section,key)




if __name__ == '__main__':
    ConfigHandler.load_config('config.ini')
    value = ConfigHandler.get_value("DO",'Q0_1')

    print(value)

Python上位機(jī)開(kāi)發(fā)教程
我要自學(xué)網(wǎng)商城 ¥80 元
進(jìn)入購(gòu)買(mǎi)
文章評(píng)論
0 條評(píng)論 按熱度排序 按時(shí)間排序 /350
添加表情
遵守中華人民共和國(guó)的各項(xiàng)道德法規(guī),
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭(zhēng)議評(píng)論。
參與本評(píng)論即表明您已經(jīng)閱讀并接受
上述條款。
V
特惠充值
聯(lián)系客服
APP下載
官方微信
返回頂部
相關(guān)推薦
您可能對(duì)下面課程感興趣
Python上位機(jī)開(kāi)發(fā)教程

105小節(jié)已有8684人學(xué)過(guò)

分類(lèi)選擇:
電腦辦公 平面設(shè)計(jì) 室內(nèi)設(shè)計(jì) 室外設(shè)計(jì) 機(jī)械設(shè)計(jì) 工業(yè)自動(dòng)化 影視動(dòng)畫(huà) 程序開(kāi)發(fā) 網(wǎng)頁(yè)設(shè)計(jì) 會(huì)計(jì)課程 興趣成長(zhǎng) AIGC