根据我对连接的理解,这段代码应该有效:
aList = ["first", "second", "last"]
for i in aList:
print self.i
我的类定义了绑定self.first=something
以及self.second
和self.last
。当我编写print self.first
时,代码可以正常工作,但print self.i
会引发异常。我做错了什么?
答案 0 :(得分:9)
在你的代码中,“i”是一个字符串,你需要这样做:
aList = ["first", "second", "last"]
for i in aList:
print getattr(self, i, None)
http://docs.python.org/library/functions.html#getattr
getattr(对象,名称[,默认])
返回object的named属性的值。 name必须是一个字符串。如果字符串是对象属性之一的名称, 结果是该属性的值。例如,getattr(x, 'foobar')相当于x.foobar。如果命名属性没有 如果提供,则返回default,否则返回AttributeError 提高。
答案 1 :(得分:1)
您将first
- 您的班级成员 - 与"first"
混淆 - 一个字符串变量恰好包含与您的成员类似的内容。
如果要将字符串转换为真实字段
,请使用getattr