【发布时间】:2017-05-15 17:30:48
【问题描述】:
为了运行程序playlist.py,我有一个简单的测试接口脚本interface.py,代码如下:
seeds = {}
user_input1 = raw_input("Please pick a seed: track, artist or genre. >> ")
user_input2 = raw_input("which one? >> ")
if user_input1 == 'track':
seeds['track'] = user_input2
elif user_input1 == 'artist':
seeds['artist']= user_input2
else:
seeds['genre'] = user_input2
playlist.py和interface.py在同一个目录下,我这里导入的是前者:
if __name__ == "__main__":
from playlist import *
在playlist.py 我定义了我的类,参数seeds 应该像这样传递:
playlilst.__init__(self, **seeds)
但是当我运行interface.py 时,我收到以下错误:
playlist.__init__(self, **seeds)
NameError: global name 'seeds' is not defined
playlist.py 的导入方式是否正确?我在这里做错了什么?
【问题讨论】:
-
我们将需要查看我们可以实际运行的代码,这实际上会在运行时产生问题。
-
没有必要。如果我将所有
interface.pycode 插入playlist.py,程序将按需要运行。所以问题一定出在两个脚本的交互方式上。 -
我们需要知道从播放列表导入所有内容后会发生什么。如果您只想知道如何传递全局变量,无论它如何解决或不会解决您的实际问题,它就像这样:
global seeds; seeds = {}。但同样,您所描述的内容应该不是问题,因此我们最好查看您的代码。 -
我明白了,但
playist.py是 3.000 行代码。所以就解决这个问题而言,我在这里似乎陷入了死胡同。
标签: python python-module