python - 在 Python 中打印与字符串同名的变量
问题描述
在我的项目中,我有用户制作的变量。如果用户给出与变量同名的字符串,我想要做的是打印变量。这是我认为的样子:
variable = 123
userInput = input("Enter a variable to print: ")
print(userInput)
# Instead of printing userInput, it will check if userInput is the name of a variable,
# and print if it is.
用户将输入“变量”,然后打印123
. 另请注意,变量将具有其自定义名称和数据。因此,如果变量名称不同,用户输入“变量”不会导致它被打印。
是的,我知道拥有用户制作的变量可能是个坏主意。我知道我在做什么。
解决方案
您可以使用自己的变量为每个用户创建一个用户空间,即
def get_userspace(user):
""" Returns current userspace of user. """
# Here may be Postgres, Redis or just global userspaces
global userspaces
return userspaces.setdefault(user, {})
userspaces = {}
userspace = get_userspace(user)
然后将特定用户的所有输入放在他/她的用户空间中,以免干扰他人,也不重新定义对程序执行可行的本地/全局。然后使用您的代码稍加改进即可从该用户空间获取变量:
user_input = input("Enter a variable to print: ")
print(userspace.get(user_input))
推荐阅读
- python - 拥抱面部标记器无法正确加载文件
- python - 有没有更快的方法来使用 Tweepy 和 Twitter API 计算所有主题标签?
- ruby - Chartick Ruby如何将比例选项传递给line_chart
- javascript - 关于来自 FreeCodeCamp 的记录收集挑战的问题
- okhttp - 在达到 keepAliveDurationNs 之前关闭连接
- nlp - 使用带有 SpaCy 的 TPus
- java - E/zzf:检索安全网令牌时出现问题:7:
- android-studio - 更新 Big Sur 11.3 后,Android 模拟器无法正常工作或显示
- android - Android 房间,映射到现有模型
- javascript - Javascript:更改第三个输入值时的金额计算