Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/327.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 方法vs属性什么更快?_Python_Class_Methods_Beautifulsoup_Properties - Fatal编程技术网

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()。但差别不是太大,是吗?