Python 在不执行第一个文件中的代码的情况下,无法将变量从1文件访问到其他文件

Python 在不执行第一个文件中的代码的情况下,无法将变量从1文件访问到其他文件,python,global-variables,Python,Global Variables,我需要我的变量从一个文件传递到另一个文件,而无需在导入模块后执行第一个文件 我试着使用global,但仍然没有用 test.py import random r1='test' def main(): global r1 r1 = random.randint(0, 10000) print(r1) if __name__=='__main__': main() else: print(r1) test1.py import test print

我需要我的变量从一个文件传递到另一个文件,而无需在导入模块后执行第一个文件

我试着使用global,但仍然没有用

test.py

import random

r1='test'
def main():
    global r1
    r1 = random.randint(0, 10000)
    print(r1)


if __name__=='__main__':
    main()
else:
    print(r1)
test1.py

import test

print(test.r1)

当我执行test.py时,我得到了1012作为输出,当我从test1.py运行它时,我期望得到相同的输出。这是一个链接程序,所以我想执行test.py,r1变量应该以某种方式传递给test1.py,而不必从test1.py执行test.py。理想情况下,test1.py应该使用由test.py创建的输出。pyn中的模块结构类似于类,因此当导入模块时,代码将按照本例中的类运行

class-MyClass:
a=打印('exe'))
注意,类变量
a
被赋值,因此语句
print
在类定义完成后立即执行。
我不知道这有什么必要,但如果需要从第一个文件导入相同的值
random.random()
,则应该创建一个文本文件,该文件将充当变量,因此可以保存并读取其中的值。

如果希望
r1
保持不变,最好的解决方案是将其保存到一个文件中,您可以在需要时从
test1.py
访问该文件。如果您只需要一个随机整数,并且必须从另一个python脚本获取它,那么只需在
test.py
中定义一个函数,然后从
test1.py
调用它即可。它看起来像这样:

import random

def getRandInt():
    r1 = random.randint(0, 10000)
    return r1

def main():
    print(getRandInt())


if __name__== '__main__':
    main()
您可以使用以下命令从另一个脚本调用:

import test

r1 = test.getRandInt()
print(r1)

请注意,如果执行此操作并运行
test.py
,然后运行
test1.py
,则随机整数将不同。这是因为脚本执行完毕后,用于存储变量的内存,操作系统会将其回收用于其他用途。

您是否希望
test.r1
test1.py中调用时会有一个随机值?否。我将执行test.py一次,并且应该能够访问test1.py中的相同值。我觉得这是唯一的选择。谢谢