使用isinstance
,我们可以检查某些东西是否属于某种类型,但我们如何测试对象是否属于某个模块?
示例:
>>> type(root)
<class 'bs4.BeautifulSoup'>
>>> isinstance(root, BeautifulSoup)
True
如何测试此对象是否属于&#34;到bs4包?
注意:当我以递归方式查看汤中的对象时,它以bs4.BeautifulSoup
对象的形式开始,但在另一个级别,它们是bs4.element.Tag
个节点。这就是为什么我要检查源于此模块而不是特定类型的原因。
答案 0 :(得分:2)
如果我理解正确,您想知道对象的模块。那是对的吗?如果是这样,您需要检查对象的__module__
属性:
>>> from bs4 import BeautifulSoup
>>> BeautifulSoup.__module__ # module of BeautifulSoup
'bs4'
>>> import requests
>>> r = requests.get('http://www.google.com')
>>> soup = BeautifulSoup(r.content)
>>> soup.__module__ # module of a BeautifulSoup object
'bs4'
根据你的评论,你可能会遇到这样的事情:
>>> soup = BeautifulSoup('<b class="boldest">A bold statement.</b>')
>>> tag = soup.b
>>> tag.__module__ # module of a Tag object
'bs4.element'