我试图解释它时遇到了很大问题所以我会举例说明。
假设我有一个很大的数据元组,它应该像一个常量。对于这个项目,我正在制作一个卡片组类,以便使元组成为所有基础卡,但我也想知道更大的数据集以及Python(标准C实现)如何处理这些优化。
我有两个选择:
deckCards = []
for value in range(1,14):
for suit in range(4):
deckCards.append(Card(value,suit))
deckCards=tuple(deckCards)
或者:
deckCards = (Card(1,0), Card(1,1), Card(1,2),..)
秒维持性是灾难性的,第一个循环将导致第二个表达式最终在...之间进行额外的操作。
我想知道的关键是:一旦Python解释了它并转换为bitcode deckCards元组,它将保留为该程序的数据(或从另一个模块导入)或将重新计算它( AKA重新验证它)每次我访问变量?
我知道Java和C#将优化大多数const或静态只读变量并将它们转换为单个内存分配以避免重新计算,但我不知道它在Python中是如何工作的。
提前感谢您的答案。