我有一些处理参数的函数,例如:
def createDataModel(objectModel):
......
def createLayoutModel(objectModel):
......
def createWidgetModel(objectModel):
......
我有一些 xml 作为输入文件,具有特定的根标记名称,例如(dataModel、layout、page),然后我将它们转换为对象模型。我有一张地图,它决定了哪个函数应该处理对象模型
xsdPathsMap = {
"dataModel": createDataModelFromXml,
"layout": createLayoutModel,
"page": createWidgetModelFromXml
}
然后我从 xml 创建对象模型并为它们分配应该处理它们的函数,
result = xsdPathsMap[xmlRootName]
# a is objectified xml
a.modelerFunction = result
当我想将对象传递给它的闭包方法时,我得到了这个异常:
a.modelerFunction(a)
TypeError: object is not callable
问题是什么?
这是我的追溯:
Traceback (most recent call last):
File "model/xmlTranporter.py", line 204, in <module>
a = main("main/schema")
File "model/xmlTranporter.py", line 200, in main
a(obj)
TypeError: 'lxml.objectify.StringElement' object is not callable