获得自我的命名属性

Ste*_*eve 1 python

根据我对连接的理解,这段代码应该有效:

aList = ["first", "second", "last"]
for i in aList:
    print self.i
Run Code Online (Sandbox Code Playgroud)

我的类定义了绑定self.first=something以及self.secondself.last.当我编写print self.first代码工作但print self.i引发异常时.我究竟做错了什么?

sah*_*hid 9

在你的代码中,"i"是一个字符串,你需要这样做:

aList = ["first", "second", "last"]
for i in aList:
    print getattr(self, i, None)
Run Code Online (Sandbox Code Playgroud)

http://docs.python.org/library/functions.html#getattr

getattr(object,name [,default])
返回object的named属性的值.name必须是一个字符串.如果字符串是对象属性之一的名称,则结果是该属性的值.例如,getattr(x,'foobar')等同于x.foobar.如果named属性不存在,则返回default(如果提供),否则引发AttributeError.