当我遇到两个问题时,我正在经历Doug Hellman's PYMOTW for the subprocess
module。代码在下面。
# subprocess_run_output.py
import subprocess
completed = subprocess.run(
['ls', '-1'],
stdout=subprocess.PIPE,
)
print('returncode:', completed.returncode)
print('Have {} bytes in stdout:\n{}'.format(
len(completed.stdout),
completed.stdout.decode('utf-8'))
)
在他的subprocess_run_output.py
代码中,他使用len
而不是sys.getsizeof
来知道stdin
是多少个字节。我认为这是因为completed.stdout
对象不仅具有字符串,而且sys.getsizeof
返回的字符串更多,但是len
将给出字符串的实际长度,以字节为单位,如{{3 }}和question 1。如果我错了,请纠正我。
在研究过程中,我遇到了question 2中Martin的回答,听起来就像文档一样。 question 1说:
getsizeof()调用对象的 sizeof 方法并添加一个 如果对象是由对象管理的,则额外的垃圾收集器开销 垃圾收集器。
我的另一个问题是,这些额外的垃圾收集开销究竟是什么?开销会占用更多时间吗?这是额外的任务吗?多余的内存?还是所有东西?为什么要附加? “附加”和“开销”难道不是意味着更多的东西了吗?我不太了解C,因此无法解读此documentation的答案。