簡體   English   中英

如何從不同模塊中另一個類的方法修改特定的類實例?

[英]How can I modify a specific class instance from the method of another class in a different module?

我希望有一個直接作用於另一個類的特定實例的類方法。 如果兩個類都在同一模塊中定義和實例化,則可以實現此目的,但是當我嘗試將這些類導入第二個模塊時,它會分崩離析。

這是顯示我的問題的測試代碼片段:

# Module 1
class Foo:
    def __init__(self):
        self.value = 1

    def get_value(self):
        return self.value

    def increase_value(self):
        self.value += 1


class Bar:
    def read_foo(self):
        foo_value = foo.get_value()
        #Do something with Foo_value
        return foo_value

然后,在另一個模塊中,使用與類方法相匹配的嚴格名稱來創建這些類中的每個類的實例。

# Module 2
import test

foo = test.Foo()
bar = test.Bar()
print(bar.read_foo())

現在,當模塊2運行時,它會返回“未定義foo”錯誤,因為在模塊1中未創建foo。如何解決此問題?

編輯:我在第一條評論中提到的解決方案是將foo作為參數傳遞給類方法read_foo,如下所示:

class Bar:
    def read_foo(self, foo):
        foo_value = foo.get_value()
        #Do something with Foo_value
        return foo_value

弱引用模塊可能具有您要查找的內容-它使您可以引用指向該對象的對象。 如果該庫功能無法完美運行的另一種選擇是僅通過對象的內存位置(由hex(id(object))找到)訪問該對象。

暫無
暫無

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

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