gpt4 book ai didi

python - 测试对象来自哪个模块而不是它是哪种类型

转载 作者:太空宇宙 更新时间:2023-11-04 03:39:16 25 4
gpt4 key购买 nike

使用 isinstance 我们可以检查某物是否属于某种类型,但是我们如何才能测试一个对象是否属于某个模块的类呢?

例子:

>>> type(root)
<class 'bs4.BeautifulSoup'>

>>> isinstance(root, BeautifulSoup)
True

如何判断这个对象是否“属于”bs4包?

注意:当我递归地遍历 soup 中的对象时,它以 bs4.BeautifulSoup 对象开始,但在另一个级别它们是 bs4.element.Tag节点。这就是为什么我要检查源自此模块而不是特定类型的原因。

最佳答案

如果我没理解错的话,您想知道一个对象的模块。那是对的吗?如果是这样,您需要检查对象的 __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'

关于python - 测试对象来自哪个模块而不是它是哪种类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27344373/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com