Fra*_*til 2 python types user-input
我有一个配置变量的字典,看起来像这样:
self.config = {
"foo": "abcdef",
"bar": 42,
"xyz": True
}
Run Code Online (Sandbox Code Playgroud)
我希望能够从用户输入更新这些变量(在这种情况下,它将始终以字符串的形式).我面临的问题很明显,我的第一个解决方案似乎对我来说足够好了:
def updateconfig(self, key, value):
if key in self.config:
self.config[key] = type(self.config[key])(value)
Run Code Online (Sandbox Code Playgroud)
然而,Freenode中的#python几乎似乎被冒犯了,我建议这样的解决方案.有人能告诉我为什么这是不好的做法?
并非所有类型都支持这样的习语"用字符串调用类型来创建该类型的新实例".不过,如果你确保你只在你的配置字典有这样的类型(与初始时间也许完整性检查),并把合适的try
/ except
保护在你尝试转换(处理用户错误,例如在一个错别字远远比死更好的方法堆栈跟踪将是;-),对于支持它的类型使用该功能没有任何"内在错误".
归档时间: |
|
查看次数: |
164 次 |
最近记录: |