我在python中實現了一個小的UserOptionHandler類。它是這樣的:通過類型引用驗證python中的用戶輸入
class OptionValue():
__init__(self, default_value, value_type=None):
self.value=default_value
if value_type == None:
self.value_type = type(default_value)
else:
self.value_type = value_type
class OptionHandler():
__init__(self, option_list):
self.options = {}
for opt_spec in option_list:
key, value, value_type = opt_spec
self.options[key] = Option(value, value_type)
def set(self, key, value):
opt = self.options[key]
opt.value = value
當我獲取用戶輸入的設定值的選擇,我想確保他們已經進入了理智。否則,應用程序會一直運行,直到它使用該選項的狀態,該選項可能會或可能不會使其崩潰。
你如何做下面的事情?
opt = handler.get(key)
user_input = input("Enter value for {0}:".format(key))
if(magic_castable_test(user_input, opt.value_type)):
print "Your value will work!"
else:
print "You value will break things!"
爲什麼你需要這樣的東西? – 2012-03-14 22:59:03
我認爲輸入應在輸入時進行驗證。如果一個選項需要是一個int,但是用戶指定了一個浮點數,他們應該立即知道它,並且可能會提示輸入一個新的值,而不是稍後使用該錯誤值時程序崩潰。 – ajwood 2012-03-14 23:08:57