我是python的新手,来自强类型语言背景,所以当我没有在最后一行(使用Beautiful Soup标记解析)时没有收到任何类型的语法错误时,我感到非常沮丧:
from urllib.request import urlopen
from bs4 import BeautifulSoup
url = input("Enter URL:")
html = urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')
print(soup.asdmsakdaskmdkvnqienwekmfsd)
它只是返回None
,因为文档中没有这样的标记
它将以每个变量名称的方式工作。当代码试图访问未在类中定义的属性时,为什么不会出现错误?
是个 。运营商在某种程度上重新定义了吗?
答案 0 :(得分:3)
是,Python是一种带有overloading的动态语言。这包括属性查找,正如评论者已经说过的那样,这意味着很难(有时候不可能)告诉编译'时间是否存在给定属性。在BeautifulSoup的情况下,动态查找任何字符串似乎是一个有意的功能。
其次,这不是语法错误。最多,它是一个会导致运行时异常的错误(AttributeError
)。