config = {
"foo": "abcdef",
"bar": "42",
"xyz": "True" ## or 'Yes' or anything not False, "" for False
}
bar = ''
while not bar:
barinput = raw_input('Enter property bar, integer (1..99): ')
try:
if 0 < int(barinput) < 100:
pass
else:
raise ValueError("%s is not integer in range 1..99" % barinput)
except ValueError as e:
print(str(e)+"\nWrong input, try again")
else:
print("Saving correct value")
bar = config["bar"] = barinput
print('New value of "bar" in config: %i' % int(config["bar"]))
更不用说,Python中有config模块,这里是我如何处理config的,以整数值“bar”为例。+1对于alex为“”,对于False的说法,请参见值“xyz”!在
该值也可以在config中保存为int,但是我们不需要
type
,因为我们知道我们正在输入integer。在并非所有类型都支持“用字符串调用类型以生成该类型的新实例”这一成语。但是,如果您确保只有在配置dict中有这样的类型(可能在初始化时进行健全性检查),和在转换尝试周围设置适当的
try
/except
保护(处理用户错误,如键入错误,比使用堆栈跟踪终止要好得多;-)对支持它的类型使用该功能没有“固有的错误”。在相关问题 更多 >
编程相关推荐