Python交叉模块变量

时间:2011-02-12 04:41:46

标签: python variables module

我意识到还有其他线程解决这个问题,但由于我对'Classes'相当新,并且已经构建了我的类结构......我想找到一个可以集成到我的代码中的方法。我相信这不会很难回答!

第一个文件:NameResult.py

from NameAssign import *

NameList = NameWorks()
print(NameList.InputNames(NameVar))

第二个文件:NameAssign.py

class NameWorks:
    def __init__(self, NameVar = []):

        self.NameVar = NameVar

    def InputNames(self, NameVar):
        global NameVar
        NameVar = ['harry', 'betty', 'sam']

结果:

NameError: name 'NameVar' is not defined

非常感谢所有回复......

1 个答案:

答案 0 :(得分:4)

NameVar中未定义

NameAssign;它仅作为局部变量存在于NameAssign.NameWorks.InputNames()内。解决此问题的最简单方法是在全局级NameAssign中定义它。

修改

事实证明这就是你想要做的事情:

NameResult.py

import NameAssign

namelist = NameAssign.NameWorks(['harry', 'betty', 'sam'])
print namelist.InputNames()  # or print(...) for Py3k

NameAssign.py

class NameWorks(object):
  def __init__(self, names):
    self.names = names

  def InputNames(self):
    return self.names