我不知道';我不太理解Python中的这个模板函数
如果我在命令行中执行“python template.py text.py”,If将打印“1和2之和为3”。在template.py文件中,replacement()是一个函数,为什么它是sub()函数的一个参数,而它没有参数?(它应该以匹配对象作为参数)并且,如果它是空的,范围字典是用来做什么的??我不知道';我不太理解Python中的这个模板函数,python,Python,如果我在命令行中执行“python template.py text.py”,If将打印“1和2之和为3”。在template.py文件中,replacement()是一个函数,为什么它是sub()函数的一个参数,而它没有参数?(它应该以匹配对象作为参数)并且,如果它是空的,范围字典是用来做什么的?? 非常感谢 所以您要问几个关于此代码的问题。它的意图很清楚:它的意图是 读取输入文件 合并成一行 对于该行中方括号中的每个表达式 调用eval(code,scope),其中code是括号中的表达式
非常感谢 所以您要问几个关于此代码的问题。它的意图很清楚:它的意图是
eval(code,scope)
,其中code
是括号中的表达式self
参数,repl
被设置为我们的replacement()
函数。它将接收匹配对象作为参数,该参数包含对每个匹配组的引用
eval()
的第二个参数提供
为了便于说明,这里是replacement()
函数的执行轨迹。该函数正好执行了5次
#text.py
[x = 1]
[y = 2]
The sum of [x] and [y] is [x + y]
pat_field.sub()中的替换函数没有参数。它叫“文本”。谢谢回复!是的,我知道这里的替换用作字符串,函数返回一个字符串。但是,如果函数不以匹配对象作为参数,它怎么能返回字符串呢?谢谢你的回答!这很有帮助!
#text.py
[x = 1]
[y = 2]
The sum of [x] and [y] is [x + y]
Evaluating 'x = 1', scope = []
Evaluating 'y = 2', scope = ['x : 1']
Evaluating 'x', scope = ['x : 1', 'y : 2']
Evaluating 'y', scope = ['x : 1', 'y : 2']
Evaluating 'x + y', scope = ['x : 1', 'y : 2']