Python 在按默认值更改的函数中输入的值
所以我创建了这个函数:Python 在按默认值更改的函数中输入的值,python,python-3.x,Python,Python 3.x,所以我创建了这个函数: def bs_obj(url, lan="html.parser"): try: html = urlopen(url) bsObj = BeautifulSoup(html, lan) print(lan) return bsObj except HTTPError as e: print(e) 现在,如果我用下一个代码调用函数:object=bs_obj(html,“lx
def bs_obj(url, lan="html.parser"):
try:
html = urlopen(url)
bsObj = BeautifulSoup(html, lan)
print(lan)
return bsObj
except HTTPError as e:
print(e)
现在,如果我用下一个代码调用函数:object=bs_obj(html,“lxml”)
,控制台将打印html.parser
。如果代码是object=bs_obj(html,lan=“lxml”)
,则情况也是如此。发生什么事了
编辑:(解决)我很惭愧。我调用了
bs_obj(html)
在我用作示例的代码行之前的一些行。我相信您运行的文件是错误的。供参考
def bs_obj(lan="html.parser"):
print(lan)
if __name__ == "__main__":
bs_obj()
bs_obj("lxml")
bs_obj(lan='html5.parser')
正确输出
html.parser
lxml
html5.parser
这是怎么回事?不是一个可以帮助其他用户解决类似问题的标题。请编辑
lan
在print(lan)
上的值。。。也许你想打印bsObj
,或者根本不打印lan
?你能显示调用代码吗?它不应该打印html.parser
,用bs\u obj(html,lan=“lxml”)
@cricket\u 007就在这里!我正在从一个旧版本的文件导入bs_obj。谢谢