Skip to main content
 首页 » 编程设计

python之这是在做什么(Python)

2025年05月04日11leader

今天我遇到了一段代码,看起来像这样:

class ClassName(object): 
     def __init__(self): 
         self._vocabulary = None 
 
     def vocabulary(self): 
         self._vocabulary = self._vocabulary or self.keys() 
         return self._vocabulary 

self._vocabulary = self._vocabulary or self.keys() 这行到底在做什么?

请您参考如下方法:

这样一行:

self._vocabulary = self._vocabulary or self.keys() 

就是所谓的惰性初始化,当你第一次获取值时它会初始化。因此,如果它从未被初始化,self._vocabulary 将是 None(因为 __init__ 方法已经设置了这个值)导致评估or 的第二个元素,因此 self.keys() 将被执行,将返回值分配给 self._vocabulary,从而为将来初始化它请求。

当 vocabulary 第二次被调用时,self._vocabulary 将不会是 None 并且它会保留那个值。