Python 方法vs属性什么更快?
在Python 方法vs属性什么更快?,python,class,methods,beautifulsoup,properties,Python,Class,Methods,Beautifulsoup,Properties,在bs4.BeautifulSoup中,有bs4.element.Tag对象。 它具有属性text 它有方法get\u text。 两者都返回关于text(str)的相同结果。 我对它很好奇 “方法与属性” 哪个访问速度更快 我通过time.time()检查本地数据,但每次运行结果都会改变 这是一个无用的好奇心吗?属性只能按原样给出文本 然而,我们可以做一些“定制”。比如在不同标记的文本之间插入分隔符,或者从字符串的末端去除空白 get_text()接受以下参数: 分隔符:在各个标记的文本之
bs4.BeautifulSoup
中,有bs4.element.Tag
对象。
它具有属性text
它有方法get\u text
。
两者都返回关于text(str)的相同结果。
我对它很好奇
“方法与属性”
哪个访问速度更快
我通过time.time()
检查本地数据,但每次运行结果都会改变
这是一个无用的好奇心吗?属性只能按原样给出文本 然而,我们可以做一些“定制”。比如在不同标记的文本之间插入分隔符,或者从字符串的末端去除空白
get_text()
接受以下参数:
:在各个标记的文本之间插入一个字符串作为分隔符分隔符
:去除标签文本末端的空白去除
html_str = """
<div>
\nHello
<span>World!</span>
<a href="">Click here</a>
</div>
"""
soup = BeautifulSoup(html_str, 'html.parser')
是的
'\n\n\nHello\n World!\nClick here\n\n'
如果使用了strip
参数
>>> soup.get_text(strip=True)
'HelloWorld!Click here'
>>> soup.get_text(separator='**')
'\n**\n\nHello\n **World!**\n**Click here**\n**\n'
如果使用了分隔符
参数
>>> soup.get_text(strip=True)
'HelloWorld!Click here'
>>> soup.get_text(separator='**')
'\n**\n\nHello\n **World!**\n**Click here**\n**\n'
如果同时使用了分隔符
和条带
>>> 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)
time.time()。但差别不是太大,是吗?