[英]While in another module. How i can access class methods from an instance when im currently in another class?
[英]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.