我想做的是这样的事情:
SCRIPT1:
import script2
def calc():
instance = script2.User()
instance.user = "me"
script2.vital_function()
SCRIPT2:
class User():
user = ""
def vital_function():
# Complex function that uses the User class
所以我希望能够在script1.py中运行script2.py,并在script1.py中设置变量。我不认为我已经非常清楚地解释了自己。问我有什么不清楚的地方。
答案 0 :(得分:0)
如果用户必须是对象属性,则可以覆盖该类(其构造函数)的init方法,并将其所需的值传递给它。
class User():
def __init__(self, user):
self.user = user
def vital_function():
...
相反,如果它必须是您在User的所有实例之间共享的某个静态值,要么像您一样对其进行修补,要么定义一个setter方法
class User():
user = ""
@staticmethod
def set_user(user):
User.user = user
但我想第一种方式更有意义。 我们是否遗漏了您的要求?