我有配置變量的字典,看起來是這樣的:有人會向我解釋爲什麼類型(富)(酒吧)是如此嚴重阻礙?
self.config = {
"foo": "abcdef",
"bar": 42,
"xyz": True
}
我希望能夠更新來自用戶的輸入(在這種情況下,總是會在一個字符串的形式,這些變量)。我面臨的問題是顯而易見的,我的第一個解決方案似乎不夠好對我說:
def updateconfig(self, key, value):
if key in self.config:
self.config[key] = type(self.config[key])(value)
然而,#python Freenode的幾乎似乎得罪,我會提出這樣的解決方案。有人能告訴我爲什麼這是不好的做法嗎?
真的很奇怪的代碼...你能解釋類型(self.config [key])的含義語義嗎? – 2010-09-01 00:41:13
我的意思是,這段代碼並不意味着_key_的類型和值的目標類型之間有任何語義關係! – 2010-09-01 00:43:38
它查找變量的原始類型(這無疑是正確的)並將傳入值設置爲該類型。代表它的更好的方法可能是'old_value = self.config [key]'後面跟着'self.config [key] = type(old_value)(value)'。 – Fraxtil 2010-09-01 00:45:26