簡體   English   中英

訪問子類'模塊的全局變量

[英]Accessing globals of subclass' module

我最近決定編寫一個輔助類來從模塊輸出一些信息。 它看起來像這樣:

class VarPrinter(object):
    @classmethod
    def save(cls):
        globals = cls.globals
        #do stuff with globals...
            for i in things_to_output:
            ...

# subclass in another module
# e.g. in foo.py
class FooPrinter(VarPrinter):
    things_to_output = ('foo', 'bar')
    globals = globals()

問題是:有沒有辦法獲得一個模塊的globals()數組,其中VarPrinter被子類化,因此我不需要像globals = globals()那樣顯式傳遞它。 換句話說,我想要的解決方案就好像我在子類的模塊中重復了baseclass的代碼。 最初我認為eval會幫助做到這一點,但事實並非如此。

您可以使用cls.__module__並在sys.modules查找它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM