パラメータを処理する関数がいくつかあります。たとえば、次のようになります。
def createDataModel(objectModel):
......
def createLayoutModel(objectModel):
......
def createWidgetModel(objectModel):
......
(dataModel、layout、page)のような特定のルートタグ名を持ついくつかのxmlを入力ファイルとして持っており、それらをオブジェクトモデルに変換します。オブジェクトモデルを処理する関数を決定するマップがあります
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