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。谢谢