我想確定類中屬性的類型。我使用setattr
來設置值,我想檢查預期的類型,以便在調用setattr
之前我可以正確地轉換字符串值。在類中查找屬性的類型
你如何在python中做到這一點?
編輯1- 基於答案爲止一些額外的信息:
我只知道我要的類型屬性的名稱,這裏是一些代碼:
def populate_object_properties(values_as_strings,
object_to_populate,
properties_to_populate):
for k in properties_to_populate:
value = values_as_strings.get(k)
if value:
setattr(object_to_populate, k, value)
else:
setattr(object_to_populate, k, None)
我希望能夠測試value
是我撥打setattr
之前的正確類型。
編輯2-我需要驗證類型的原因是,我使用Google AppEngine的db.Model作爲object_to_populate
的基本類型,它不喜歡何時將字符串放入int
類型。我試圖儘量保持這個問題的簡單性,但也許這段信息會影響人們如何回答。(?)
你爲什麼這樣做?只需設置值。如果任何對象的實際類型與預期的方法不兼容,它將會中斷。爲什麼要在使用鴨子打字的語言中對類型檢查浪費太多處理? – 2010-01-04 15:30:43
我正在使用Google AppEngine的db.model,並且將我的db.model類的屬性強制爲一種類型。所以,如果我嘗試將Int屬性設置爲字符串,它會引發異常。 – mlsteeves 2010-01-04 15:56:54
您可能想要查看db.djangoforms:http://code.google.com/appengine/articles/djangoforms.html – dar 2010-01-05 02:59:49