在python中,对于一个应该是常量的类变量,使用文字比构造它更快?

时间:2017-12-01 09:39:26

标签: python optimization bytecode

我试图解释它时遇到了很大问题所以我会举例说明。

假设我有一个很大的数据元组,它应该像一个常量。对于这个项目,我正在制作一个卡片组类,以便使元组成为所有基础卡,但我也想知道更大的数据集以及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中是如何工作的。

提前感谢您的答案。

0 个答案:

没有答案