第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

如何將文件結(jié)構(gòu)表示為 python 對象

如何將文件結(jié)構(gòu)表示為 python 對象

江戶川亂折騰 2021-10-12 17:53:31
我試圖找到一種將文件結(jié)構(gòu)表示為 python 對象的方法,這樣我就可以輕松獲得特定路徑,而無需輸入字符串。這適用于我的情況,因?yàn)槲矣幸粋€(gè)靜態(tài)文件結(jié)構(gòu)(不改變)。我想我可以將目錄表示為類,并將目錄中的文件表示為類/靜態(tài)變量。我希望能夠?yàn)g覽 python 對象,以便它返回我想要的路徑,即:print(FileStructure.details.file1) # root\details\file1.txtprint(FileStructure.details) # root\details我從下面的代碼中得到的是:print("{0}".format(FileStructure())) # rootprint("{0}".format(FileStructure)) # <class '__main__.FileStructure'>print("{0}".format(FileStructure.details)) # <class '__main__.FileStructure.details'>print("{0}".format(FileStructure.details.file1)) # details\file1.txt我到目前為止的代碼是......import os class FileStructure(object): # Root directory    root = "root"    class details(object): # details directory        root = "details"        file1 = os.path.join(root, "file1.txt") # File in details directory        file2 = os.path.join(root, "file2.txt") # File in details directory        def __str__(self):            return f"{self.root}"    def __str__(self):        return f"{self.root}"我不想必須實(shí)例化類才能完成這項(xiàng)工作。我的問題是:如何調(diào)用類對象并讓它返回一個(gè)字符串而不是 < class ....> 文本我怎樣才能讓嵌套類使用它們的父類?
查看完整描述

2 回答

?
小唯快跑啊

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊

預(yù)先:這是一個(gè)糟糕的解決方案,但它只需少量更改即可滿足您的要求。基本上,您需要實(shí)例__str__才能工作,因此這會(huì)欺騙使用裝飾器語法將您的類聲明更改為已聲明類的單例實(shí)例化。由于從嵌套類中隱式引用外部類是不可能的,因此該引用是顯式執(zhí)行的。并且可以復(fù)用__str__,file1并且file2被做成@propertys這樣他們就可以使用實(shí)例的str形式details來構(gòu)建自己。


@object.__new__

class FileStructure(object): # Root directory

    root = "root"


    @object.__new__

    class details(object): # details directory

        root = "details"

        @property

        def file1(self):

            return os.path.join(str(self), 'file1')

        @property

        def file2(self):

            return os.path.join(str(self), 'file2')


        def __str__(self):

            return f"{os.path.join(FileStructure.root, self.root)}"


    def __str__(self):

        return f"{self.root}"

再說一遍:雖然這確實(shí)會(huì)產(chǎn)生您想要的行為,但這仍然是一個(gè)糟糕的解決方案。我強(qiáng)烈懷疑您在這里遇到了 XY 問題,但這回答了所問的問題。


查看完整回答
反對 回復(fù) 2021-10-12
  • 2 回答
  • 0 關(guān)注
  • 184 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)