从其他脚本访问主函数中的变量
Access variable in main function from other script
这可能是一个愚蠢的问题,但我有点难以让它发挥作用:
假设我有两个文件:
script1.py :
myValue = 0
def addition():
global myValue
myValue += 1
if __name__ == '__main__':
addition()
print(myValue)
script2.py :
def getMyValue():
from script1 import myValue
print(myValue)
getMyValue()
输出:0
我想让我的第二个脚本访问更新后的值,这样我就可以得到“1”作为输出。
你认为我如何才能正确地做到这一点?
感谢您的回复
变量 myValue
未在 script2.py 中更新,因为您没有通过导入 script1 调用 addition()
函数。这是由于条件
if __name__ == '__main__'
确保仅当您 运行 脚本本身时才执行以下每个逻辑。如果将 script1 导入另一个脚本,则条件 if __name__ == '__main__'
变为 False
,下面代码的 none 将变为 运行。
您可以直接在 script1 中调用 addition()
,这不是一个非常干净的解决方案 -
脚本 1:
myValue = 0
def addition():
global myValue
myValue += 1
addition()
或者重新考虑addition()
是否真的需要对全局变量进行操作。请注意 python 中的全局变量只是一个模块中的全局变量,而不是跨多个模块的全局变量,因此将变量和函数都导入脚本 2 将不允许您在脚本 2 中调用 addition()
并获得预期效果.但是,我建议让它接受这样的参数 - script1:
myValue = 0
def addition(a_value):
a_value += 1
return a_value
if __name__ == '__main__':
myValue = addition(myValue)
print(myValue)
然后调用script2中的加法函数,例如如下- script2:
from script1 import *
def getMyValue():
my_new_value = addition(myValue)
print(my_new_value)
getMyValue()
这可能是一个愚蠢的问题,但我有点难以让它发挥作用:
假设我有两个文件:
script1.py :
myValue = 0
def addition():
global myValue
myValue += 1
if __name__ == '__main__':
addition()
print(myValue)
script2.py :
def getMyValue():
from script1 import myValue
print(myValue)
getMyValue()
输出:0
我想让我的第二个脚本访问更新后的值,这样我就可以得到“1”作为输出。 你认为我如何才能正确地做到这一点?
感谢您的回复
变量 myValue
未在 script2.py 中更新,因为您没有通过导入 script1 调用 addition()
函数。这是由于条件
if __name__ == '__main__'
确保仅当您 运行 脚本本身时才执行以下每个逻辑。如果将 script1 导入另一个脚本,则条件 if __name__ == '__main__'
变为 False
,下面代码的 none 将变为 运行。
您可以直接在 script1 中调用 addition()
,这不是一个非常干净的解决方案 -
脚本 1:
myValue = 0
def addition():
global myValue
myValue += 1
addition()
或者重新考虑addition()
是否真的需要对全局变量进行操作。请注意 python 中的全局变量只是一个模块中的全局变量,而不是跨多个模块的全局变量,因此将变量和函数都导入脚本 2 将不允许您在脚本 2 中调用 addition()
并获得预期效果.但是,我建议让它接受这样的参数 - script1:
myValue = 0
def addition(a_value):
a_value += 1
return a_value
if __name__ == '__main__':
myValue = addition(myValue)
print(myValue)
然后调用script2中的加法函数,例如如下- script2:
from script1 import *
def getMyValue():
my_new_value = addition(myValue)
print(my_new_value)
getMyValue()