3

我有一种情况,我想在第二个文件的一个文件中使用声明的类实例。作为一个小例子,请参见下面的代码:

我现在如何解决它?

File2(待执行):

# Prog2:
from prog1 import *

cls1.dict["name"] = "John"

文件 1

# Prog1:

class Myclass(object):
    def __init__(self):
        self.dict = {}

cls1 = Myclass()

import prog2
print cls1.dict["name"]

有更好的方法吗?

4

2 回答 2

5

为什么是循环依赖?

文件 1:

# file 1
class MyClass(object):
    def __init__(self):
        self.dict = {}

cls1 = MyClass()
cls1.dict["name"] = "John"

文件 2:

# file 2
from prog1 import cls1

print cls1.dict["name"]
>> "John"
于 2013-09-17T13:51:43.957 回答
2

的主要目的import是使功能可用。它通常不应该用作执行过程的方法。您的“prog2”应该包含一个带有参数的函数:

def execute(instance):
    instance.dict["name"] = "John"

然后“prog1”可以使用适当的实例调用它:

import prog2

class Myclass(object):
    def __init__(self):
        self.dict = {}

cls1 = Myclass()

prog2.execute(cls1)
print cls1.dict["name"]
于 2013-09-17T14:03:42.097 回答