如何让Python将命令行传入的字符串识别为变量名?
命令行传入变量名获取对应变量值的解决方法
要实现把命令行传入的字符串识别为变量名并输出对应值,可以利用Python的globals()函数——它会返回当前全局作用域的变量字典,通过变量名字符串作为键就能拿到对应的值。
修改后的toy.py代码如下:
import sys a = 123 # 可添加更多测试变量 b = "hello world" c = {"key": "value"} if len(sys.argv) < 2: print("请传入要查看的变量名") sys.exit(1) var_name = sys.argv[1] try: print(globals()[var_name]) except KeyError: print(f"不存在名为 {var_name} 的变量")
执行效果:
- 运行
python toy.py a,输出:123 - 运行
python toy.py b,输出:hello world - 运行
python toy.py d,输出:不存在名为 d 的变量
如果你的变量定义在局部作用域(比如函数内部),可以改用locals()函数来获取局部变量字典。
内容的提问来源于stack exchange,提问作者Xiaokang
相关产品推荐
相关产品推荐

