我有以下MWE:
import string
class MyTemplate(string.Template):
delimiter = '$'
pattern = r'''
\$(?:
(?P<escaped>\$)|
(?P<named>[_a-z][_a-z0-9]*)\$|
(?P<braced>[_a-z][_a-z0-9]*)\$|
(?P<invalid>)
)
'''
data1="max=$max$ min=$min$"
data2="max=$max$ "
print MyTemplate(data1).substitute({"max":"10","min":"1"})
print MyTemplate(data2).substitute({"max":"10","min":"1"})
print MyTemplate(data1).substitute({"max":"10"})
在3张照片中,我希望唯一可接受的情况是第一张; 最后一个引发异常,但第二个只是写道:
max=10
谢谢!
答案 0 :(得分:0)
这里真正的问题是&#34;你想要实现什么?&#34;并且&#34;它需要吗?&#34;和&#34;为什么需要?&#34;
如果在回答完所有内容后仍然需要,请覆盖substitute
课程中的MyTemplate
。你可以做任何你喜欢的检查。但是,它可能会减慢您的计划速度。
另一方面,string.Template
(来自python 2.6)主要用于mystr.format()
。然后,替换为f-strings(3.6)https://www.python.org/dev/peps/pep-0498/