将属性连接为String的对象

时间:2015-06-23 13:50:32

标签: python

我有以下函数,它接收响应,CallableInterface对象和属性String

def assert_response(response, api, expectedResponse):
    # api = self.Startup
    # expectedResponse = "ERROR_NOT_SUPPORTED"
    eval(api + "." + expectedResponse) 

上面看到的行应该评估为属性调用:

self.Startup.ERROR_NOT_SUPPORTED

但是,我收到以下错误,因为expectedResponse中包含的值未被扩展。

AttributeError: 'CallableInterface' object has no attribute 'expectedResponse'

有关如何解决此问题的任何建议?

1 个答案:

答案 0 :(得分:1)

您应该使用getattr来访问对象属性:

getattr(api, expectedResponse)

如果api是一个对象(即self.Startup),哪个属性被命名为expectedResponse的值,那就应该这样做。

但在此之前,请事先打印出来,确保expectedResponse的内容实际上是您认为的内容。