【发布时间】:2022-01-07 00:12:54
【问题描述】:
我是个 C 人。我知道 python denounces const 关键字支持“我们是成年人,我们彼此信任”。
现在我需要通知一些 python 线程一些消息和decided 使用队列。消息是长度不超过 1024 个字符的字符串。我觉得这些线程可以为调用线程甚至为它们自己更改这些消息是荒谬的。
如何预防?还是已经有了?
【问题讨论】:
-
在某些情况下,我会在发送之前创建此类消息的(深层)副本。尤其是当系统的多个端有可能修改同一个数据对象并因此产生不希望的副作用时。但是,假设这种情况在 20,000 LoC 中发生一次。但是你需要密切关注它......
-
消息是什么? Python 有很多不可变的方法,所有原始内置函数都是不可变的,一些容器(如 tuples、namedtuples 和frozensets)是不可变的,还有几个实用程序(如
dataclass)提供冻结类型。但最终,如果您不想改变某些东西,就不要改变它。 -
@MisterMiyagi 这听起来比深拷贝要干净得多。我更新了消息是短字符串的问题。这是一个聊天应用程序。
标签: python multithreading constants