gpt4 book ai didi

python - 方法与属性哪个更快?

转载 作者:行者123 更新时间:2023-12-01 00:32:18 24 4
gpt4 key购买 nike

bs4.BeautifulSoup中,有bs4.element.Tag对象。它有属性text它有方法get_text。两者都返回关于 text(str) 的相同结果。

我很好奇

" method vs property "

哪个访问速度更快?

我通过time.time()检查本地,但每次运行时,结果都会改变。

这是无用的好奇心吗?

最佳答案

text属性只能按原样给出文本。

get_text() 可以做一些“定制”。就像在不同标签的文本之间插入分隔符或去除字符串末尾的空格一样。

<小时/>

get_text()接受以下参数:

  • separator :在各个标签的文本之间插入字符串作为分隔符。
  • strip :去掉标签文本末尾的空格。

考虑

html_str = """
<div>
\nHello
<span>World!</span>
<a href="">Click here</a>
</div>
"""
soup = BeautifulSoup(html_str, 'html.parser')

如果我们考虑<div>标签的文本如

soup.text

应该是

'\n\n\nHello\n  World!\nClick here\n\n'

如果strip使用参数

>>> soup.get_text(strip=True)
'HelloWorld!Click here'

如果separator使用参数

>>> soup.get_text(separator='**')
'\n**\n\nHello\n **World!**\n**Click here**\n**\n'

如果两者separatorstrip被使用

>>> soup.get_text(separator='**', strip=True)
'Hello**World!**Click here'
<小时/>

运行时间似乎大致相同。

%timeit soup.text
4.16 µs ± 56.8 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit soup.get_text(strip=True)
5.38 µs ± 154 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit soup.get_text(separator='**')
4.16 µs ± 53.7 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit soup.get_text(separator='**', strip=True)
5.45 µs ± 213 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

关于python - 方法与属性哪个更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58091535/

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