擅长:python、mysql、java
<p>你可以使用文本模板引擎。(这比使用基于eval的技巧更安全)。在</p>
<p>下面是一个使用<a href="http://packages.python.org/Genshi/templates.html" rel="nofollow">genshi</a>的示例</p>
<pre><code>from genshi.template import TextTemplate
ip_vlan1 = TextTemplate("10.10.${id+100}.5")
ip_vlan2 = TextTemplate("10.11.${2*id+1}.6")
print( ip_vlan1.generate(id=3) ) # prints 10.10.103.5
print( ip_vlan2.generate(id=5) ) # prints 10.11.11.6
</code></pre>
<p>如果您真的需要<code>calculate_vlan_id</code>函数,它将如下所示:</p>
^{pr2}$
<p><strong>编辑:</strong></p>
<p>根据要求,这里有一个使用jinja2的示例:这可能不是实现此目的的最佳方法,jinja2文档非常大且令人困惑。在</p>
<pre><code>ip_vlan1 = jinja2.Template('10.10.{{id+100}}.5')
ip_vlan2 = jinja2.Template('10.11.{{2*id+1}}.6')
ip_vlan1.render(id=3)
ip_vlan2.render(id=5)
</code></pre>
<p>这两种方法<strong>未经测试</strong></p>