次の例では、「解析中に予期しない EOF」という構文エラーがスローされます。
${foo({'bar':'baz'})}
これは、内側の閉じ中括弧からのものだと思います。これはうまくいきます:
${foo(dict(bar='baz'))}
しかし、辞書リテラルを使用するための構文は何ですか?
次の例では、「解析中に予期しない EOF」という構文エラーがスローされます。
${foo({'bar':'baz'})}
これは、内側の閉じ中括弧からのものだと思います。これはうまくいきます:
${foo(dict(bar='baz'))}
しかし、辞書リテラルを使用するための構文は何ですか?
Mako Templates Google Groupの Brian Rue から:
これは長い間未解決のバグです。dict() を使用するだけです。文字列ではないキーを持つ辞書が必要な場合は、タプルのリストを辞書に変換します。たとえば、これの代わりに:
${foo({1: 'a', 2: 'b'})}
これを行う:
${foo(dict([(1, 'a'), (2, 'b')]))}