擅长:python、mysql、java
<p>另外,当使用<code>%</code>符号进行字符串格式设置时,可以指定如下关键字参数(取自您的示例):</p>
<pre><code>pattern ='SELECT distinct ?a\
WHERE { ?a rno:end_at ?b.\
?b rdf:type rno:Node; rno:is_extent_of ?x.\
?x rno:builds %(p1)s. %(p1)s a rno:Roundabout.\
FILTER(NOT EXISTS {?a rno:builds %(p1)s})} ORDER BY ?a'
params = dict(p1=ref_RaURI)
# equal to
# params = {'p1': ref_RaURI}
query_1 = pattern % params
</code></pre>
<p>字符串格式运算符<code>%</code>有多个选项。最常见的情况是将其用作<code>%s</code>。WIt只插入变量的字符串表示形式。还有其他选项,比如<code>%c</code>-字符、<code>%d</code>-数字等等。
除此之外,它还支持关键字参数。这意味着,当您将dictionary作为格式化源传递时,可以为<code>%</code>操作符指定给定dict的键,如下所示:</p>
<pre><code>d = {'one': 'first param', 'two': 'second param'}
print 'Few options here: %(one)s and %(two)s' % d
</code></pre>
<p><code>%(one)s</code>意思是:通过键<code>one</code>从dict中获取值,并放入其字符串表示形式(<code>%s</code>)。相同的规则适用于所有参数。如果您只想使用<code>%(one)</code>,这将不起作用,因为您需要提供type,在这个<code>%s</code>中,type代表字符串。你知道吗</p>