我想确定类中属性的类型。我使用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