1

Mako を使用して、ネットワーク ルーター用の構成テンプレートをいくつか作成しています。

シンプルなルーターオブジェクトを作成したい

ファイル routers.py

class myRouter(Object):

     def name(self):
          return "Foo"

     def interfaces(self):
          return [{'name':'loopback','address':'127.0.0.1'},{...}]

次に、Mako と私のテンプレートを使用してレンダリングします

実行:

from mako import *
from routers import myRouter
z = myRouter()
mytemplate = Template(filename='config.mako')
print mytemplate.render(router=z)

ファイル config.mako

Router name is ${router.name()}!
Router interfaces are :
% for i in router.interfaces():
     ${i.name} -> ${i.address}
% endfor

出力:

ルーター名は

<bound method Router.name of <pyrouteur.Router object
> at 0x7fa10a912310>>

この動作を回避するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

2

クラスのインスタンスを作成し、myRouterそれを render メソッドに渡す必要があります。現在、クラス自体を引数として渡しています。

コードは次のようになります。

r = myRouter()
t.render(router =r)
于 2012-04-06T14:40:29.097 に答える