为什么在我的execute方法中getattr上会出现AttributeError?

2024-10-03 23:21:13 发布

您现在位置:Python中文网/ 问答频道 /正文

下面的代码用作SimpleXMLRPCServer的一部分,用于从我编写的Java客户机接收命令。Java客户机将只调用这个execute函数并从CameraAssembler类传入一个函数名。在

from nsCamera.CameraAssembler import CameraAssembler
class MyFunctions:
    ca = None
    def initialize(self):
        # Create Camera object
        self.ca = CameraAssembler(commname=COMM, boardname=BOARD, sensorname=SENSOR, verbose=True)
        return True
    def execute(self, code):
        func = getattr(self.ca,code)
        output = func()
        return output

myfuncs = MyFunctions()
myfuncs.initialize()
output = myfuncs.execute('arm()')
print(output)

输出:

^{pr2}$

Tags: 函数selftrueoutputexecute客户机returndef
1条回答
网友
1楼 · 发布于 2024-10-03 23:21:13

你的括号放错地方了。这个属性不是arm(),而是arm;您需要调用获取该属性的结果。在

output = myfuncs.execute('arm')()

(注意,这段代码不是特别惯用的。特别是,我不明白为什么要将ca设置为类属性,而不是实例属性。另外,初始化通常在__init__方法中进行,该方法在实例化时自动调用。)

相关问题 更多 >