python使用另一个文件中的变量

时间:2013-01-28 23:14:54

标签: python

我是新手并试图制作一个简单的随机句子 - 如何从存储在另一个.py文档中的列表中提取随机项? 我正在使用

random.choice(verb_list) 

从列表中拉出来。如何告诉python verb_list在另一个文档中?

同样了解解决方案背后的原理是有帮助的。我想它就像'文件引用''文件桥接'等等。

2 个答案:

答案 0 :(得分:49)

您可以从文件中导入变量:

<强> vardata.py

verb_list = [x, y, z]
other_list = [1, ,2, 3]
something_else = False

<强> mainfile.py

from vardata import verb_list, other_list
import random

print random.choice(verb_list) 

你也可以这样做:

from vardata import *

从该文件导入所有内容。但要小心这一点。您不希望发生名称冲突。

或者,您可以导入文件并通过其命名空间访问变量:

import vardata
print vardata.something_else

答案 1 :(得分:5)

这叫做导入。

如果是data.py

verb_list = [
    'run',
    'walk',
    'skip',
]

这是foo.py

#!/usr/bin/env python2.7

import data
print data.verb_list

然后运行foo.py将从verb_list访问data.py


您可能希望使用Modules section of the Python tutorial


如果verb_list存储在您想要执行其他操作的脚本中,那么当您要执行的操作是导入其变量时,您将遇到脚本运行的问题。在这种情况下,要做的标准事情是将所有脚本功能保存在名为main()的函数中,然后使用魔术咒语:

verb_list = [
    'run',
    'walk',
    'skip',
]

def main():
    print 'The verbs are', verb_list

if __name__ == '__main__':
    main()

如果您所做的只是main(),则import data中的代码将无法运行。如果您有兴趣,Python创建者Guido van Rossum撰写了一篇关于撰写更精细Python main() functions的文章。