2012-03-30 74 views
1
class a : 
    b = 10 

我有一个属性为'b'的类'a'。如果我在字符串中有属性名称,我该如何从对象中获取属性?

o = a() 

我创建一个对象的 'o' 类的 'A'

v = 'b' 

我有另一个变量 'V' 具有属性类的 'B' '一'

的字符串表示

现在假设我只有'v'和'0'。 即我该怎么办

o.v 

我如何获得b即“10”

+0

请看看我是如何改变了标题。尝试并写出描述问题的标题,而不仅仅是说出你正在考虑的一些事情。 – agf 2012-03-30 13:53:37

+0

与问题本身无关,只是为了确定,你是否意识到'a.b'实际上是一个类属性,即它在所有实例之间共享,并且可以以'a.b'和'o.b'的形式访问它? – bereal 2012-03-30 13:54:00

+6

另外:虽然getattr/setattr可能非常有用,但它也经常被新手用于Python,我们大多数人会使用字典。如果你发现自己经常需要它,你可能会让生活比需要的更难。 – DSM 2012-03-30 13:59:15

回答

6

的价值您是否正在寻找这样的事情?

getattr(o, v) 
+0

+1。什么是文本填充程序的快捷方式,如*您是否在寻找类似的东西?*如果真正的答案太短? – eumiro 2012-03-30 13:47:26

+0

@eumiro:'<! - 我是一个占位符!好极了! - >';) – Ryan 2012-03-30 13:47:50

+0

@eumiro:我刚刚输入了它,正如打字错误所证明的那样。 (谢谢,@minitech!) – 2012-03-30 13:52:03

相关问题