2024-05-17 03:44:34 发布
网友
有没有办法从字符串创建全局变量?我知道你可以用这样的字符串来生成一个变量:
string = 'hello' val = 10 vars()[string] = val
从而使hello成为一个等于10的变量。我不知道如何将该用户输入变量设置为全局变量,但这不起作用:
string = 'hello' val = 10 vars()[string] = val eval("global " + string)
从模块设置全局变量: 为了简化我的argparse版本,我尝试了一些类似的方法,以便它允许最少的名称重复,支持不区分大小写的多字符标志,但仍然使用混合大小写标志设置全局变量。 我唯一能想到的解决方案是返回一个我可以执行的语句列表。我在模块内执行的尝试没有成功。 我的例子:
def main(): print "Some tests with provided args" One = 1 Two = 2 Three = 3 prs = ArgumentParserCI(description='process cmdline args') prs.add_argument('One') prs.add_argument('Three') cmdlineargs = ['-one', 'one', '--thr', "III"] argsdict, unknownargs, execlist = prs.parse_args(cmdlineargs) exec(execlist) print("cmdlineargs:", cmdlineargs) print (One, Two, Three) if __name__ == "__main__": main()
打印输出:
Some tests with provided args ('cmdlineargs:', ['-one', 'one', '--thr', 'III']) ('one', 2, 'III')
您可以使用globals()函数:
globals()
name = "hello" globals()[name] = 10
从模块设置全局变量:
为了简化我的argparse版本,我尝试了一些类似的方法,以便它允许最少的名称重复,支持不区分大小写的多字符标志,但仍然使用混合大小写标志设置全局变量。 我唯一能想到的解决方案是返回一个我可以执行的语句列表。我在模块内执行的尝试没有成功。 我的例子:
自测
打印输出:
您可以使用
globals()
函数:相关问题 更多 >
编程相关推荐