首页 > 解决方案 > python - 从file1中的变量在file2中创建变量并在file1中使用

问题描述

我正在尝试这样:

档案:一

list1 = [1, 2, 3]
list2 = [4, 5, 6]

from b import *

if obj1 is True:
    print('obj1 is true')
if obj2 is True:
    print('obj2 is true')
if obj3 is True:
    print('obj3 is true')

文件:b

from a import *
obj1 = list1[0] + list2[0] < 7
obj2 = list1[1] + list2[1] < 7
obj3 = list1[2] + list2[2] < 7

输出应该就像在一个文件中一样:

'obj1 is true'
'obj2 is true'

现在我只是得到错误。我已经尝试了所有可能的导入方式。即使是这样:

档案:一

list1 = [1, 2, 3]
list2 = [4, 5, 6]

from b import obj1, obj2, obj3

if b.obj1 is True:
    print('obj1 is true')
if b.obj2 is True:
    print('obj2 is true')
if b.obj3 is True:
    print('obj3 is true')

文件:b

from a import list1, list2
obj1 = a.list1[0] + a.list2[0] < 7
obj2 = a.list1[1] + a.list2[1] < 7
obj3 = a.list1[2] + a.list2[2] < 7

它与那个看不见的 ' name = main ' 变量有关吗?在此之后,我收到一个循环导入错误。这在python中是不可能的吗?有人可以解释怎么做吗?或者如果可能的话?

标签: python-3.x

解决方案


如果它不能那样工作,那么只需将它们组合起来,如下所示:

py

list1 = [1, 2, 3]
list2 = [4, 5, 6]

obj1 = a.list1[0] + a.list2[0] < 7
obj2 = a.list1[1] + a.list2[1] < 7
obj3 = a.list1[2] + a.list2[2] < 7

if b.obj1 is True:
    print('obj1 is true')
if b.obj2 is True:
    print('obj2 is true')
if b.obj3 is True:
    print('obj3 is true')

推荐阅读