我正在尝试将 lxml 方法合并到我正在构建的另一个函数中。
lxml 将包含在双引号中的字符串作为输入。在该字符串中有另一个用单引号括起来的术语。像这样:
root.findall(".//*[@name='File Name']")
但是,我想从函数的参数中传递单引号 ('File Name'
) 内的值。
像这样:
def foo(bar):
root.findall(".//*[@name="+bar+"]")
但是,我只能通过输入带有双引号和单引号的 bar
arg 来让它工作,就像这样:"'bar'"
。
我如何配置它以便只需要编写 'bar'
?
我试过 +"\""+bar+"\""+
但没用。
编辑:我找到了一种方法:
def foo(bar):
atr = '"'+atr+'"'
root.findall(".//*[@name="+bar+"]")
有没有更优雅的解决方案?
有点不清楚你在问什么。我认为这就是您想要的:
def foo(bar):
root.findall(".//*[@name='{}']".format(bar))
这意味着如果你调用 foo("XYZ")
,它会调用 root.findall(".//*[@name='XYZ']")
.
我是一名优秀的程序员,十分优秀!