gpt4 book ai didi

python - with语句后作为对象使用是否存在潜在的漏洞?

转载 作者:行者123 更新时间:2023-12-01 09:25:26 26 4
gpt4 key购买 nike

我在 virtualenv 中使用 python3.6。我想知道我是否使用来自外部的 with 对象 with 语句。

这是问题的示例代码。

with tempfile.NamedTemporaryFile(delete=False) as tf:
tf.write(audio_stream)

# outside of with
print(tf.name) # is it dangerous?

我只想写with语句,并在with之外做其他事情。 (例如tf.name)。从外部访问 tf 对象是否存在潜在威胁? (无意的垃圾收集等)

如果不推荐,我也想知道确切的原因。谢谢

最佳答案

没有无意的垃圾收集。每个对象类都决定退出 with 对它意味着什么,因此没有硬性规则。通常,诸如基础文件句柄之类的保留资源会被关闭,但在关闭期间通常不会更改的其他属性不会发生变化。

在您的情况下,临时文件已关闭,因此读/写/查找等...不起作用,但名称属性可以安全读取。

如果您确实需要了解给定对象,请打开其源代码并查看其 __exit__ 方法。

关于python - with语句后作为对象使用是否存在潜在的漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50444096/

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