2014-02-10 31 views
0

Python是否具有PHP的$this->{$var}的等效物?

类似self.{var name}

+1

你的意思是你直到运行时才知道该属性的名称,或者其他的东西? – geoffspear

+3

这里没有问题。 – aldo

+0

getattr和setattr是我所需要的,因为直到运行时,我才知道属性的名称,如第一条评论。 –

回答

3

要查找直到运行时才知道的属性,使用getattr

getattr(self, "varname") 

从文档:

返回对象的指定属性的值。名称必须是字符串。如果字符串是对象属性之一的名称,则结果是该属性的值。例如,getattr(x,'foobar')等同于x.foobar。如果指定的属性不存在,则返回默认值(如果提供),否则引发AttributeError。

将属性添加到一个对象,对方是setattr

setattr(self, "varname", value) 
2

您可以使用getattr

getattr(self, var_name) 

其中var_name是包含你的字段名称的字符串变量。