将数据传递给导入的Python程序

时间:2014-07-04 09:46:19

标签: python import

我想做的是这样的事情:

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中设置变量。我不认为我已经非常清楚地解释了自己。问我有什么不清楚的地方。

1 个答案:

答案 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

但我想第一种方式更有意义。 我们是否遗漏了您的要求?