Skip to main content
 首页 » 编程设计

python之什么更有效率类定义中的字典还是函数定义中的字典

2025年05月04日17EasonJim

我有一些对象将始终存储在内存中,并且会有数千个实例,因此有效地使用内存很重要。

这个对象将使用一些像这样的字典:

{ 
'text':doSomething, 
'string':doAnotherThing, 
'int':doSomethingCrazy 
} 

当然我可以把它放在类之外,在模块级别,所以它肯定只会在内存中存储一​​次,但我更喜欢把东西放在一起,所以如果它只在那个类中使用它看起来如果将其保存在类里面会更好。

问题是,如果我把dict放到类定义中,它是否只在内存中存储一​​次?

class MyClass(object): 
   thatDict={} 

或者如果我把它放在函数定义中,它会只在内存中存储一​​次吗?

class MyClass(object): 
   def someFunc():        
      thatDict={} 

请您参考如下方法:

如果将它放在一个函数中,则每次调用该函数时都会重新创建字典。这有点浪费,尤其是字典很大:

class MyClass(object): 
    def someFunc():        
        thatDict={} # recreated every function call 

如果将它放在类定义中,它只会创建一次:加载模块时。

class MyClass(object): 
    thatDict={} # Only one copy 

您也可以在文件范围内创建它,效果相同:

thatDict={} # Only one copy 
class MyClass(object): 
    ...