'''
類方法和靜態(tài)方法是兩種與類相關(guān)的方法類型。
類方法:使用 @classmethod 裝飾器定義。類方法的第一個(gè)參數(shù)通常命名為 cls ,用于引用類本身,而不是類的實(shí)例。
類方法可以訪問和修改類級別的屬性,也可以創(chuàng)建和操作類的實(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ù)(無論是實(shí)例還是類),
它的行為類似于一個(gè)普通函數(shù),但被包含在類的命名空間中,主要用于組織代碼邏輯上與類相關(guān)的功能。
class MyClass:
@staticmethod
def static_method():
print("This is a static method")
類方法和靜態(tài)方法的主要區(qū)別在于:
類方法可以訪問和修改類級別的屬性,而靜態(tài)方法不能。
類方法的第一個(gè)參數(shù)是類本身,而靜態(tài)方法沒有這樣的特殊參數(shù)。
類方法的使用場景:
數(shù)據(jù)加載與共享:如果應(yīng)用需要從外部文件或數(shù)據(jù)庫加載一些全局?jǐn)?shù)據(jù),這些數(shù)據(jù)對于該類的所有實(shí)例都是相同的,可以使用類方法來加載和管理這些數(shù)據(jù)。
配置管理:用于讀取和設(shè)置應(yīng)用程序的全局配置信息。
實(shí)例創(chuàng)建的定制:根據(jù)不同的條件創(chuàng)建具有特定屬性的類實(shí)例。
管理與類相關(guān)的資源:例如,打開和關(guān)閉與類相關(guān)的網(wǎng)絡(luò)連接或文件句柄。
靜態(tài)方法的使用場景:
工具函數(shù):執(zhí)行一些通用的、與類邏輯相關(guān)但不依賴于類或?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 #類屬性,存儲(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("請先調(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)
承擔(dān)因您的行為而導(dǎo)致的法律責(zé)任,
本站有權(quán)保留或刪除有爭議評論。
參與本評論即表明您已經(jīng)閱讀并接受
上述條款。