我有以下函数,它接收一个响应、一个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'
关于如何解决这个问题,有什么建议吗?
您应该使用getattr来访问对象属性:
getattr(api, expectedResponse)
如果api
是一个对象(即self.Startup
),其属性被命名为expectedResponse
的值,则应该这样做。
但在做任何事情之前,请确保expectedResponse
的内容实际上是您认为的内容,方法是事先打印它。