Skip to main content
 首页 » 编程设计

python之声明空变量的最佳实践

2025年05月04日10JeffreyZhao

我知道 Python 是一种动态语言,通常不需要事先声明变量,但在我需要创建一个变量然后稍后为其赋值的情况下,以下两种方法都有效:

some_variable = ''  
some_variable = str() 

这两者之间是否存在差异,哪个被认为是最佳实践?

示例:

some_variable = str()  
 
for number in range(10):  
    some_variable += str(number) 
print(some_variable) 

适用于 some_variable = '' 和 some_variable = str()

By best practice I do not mean "which is best coding style/most readable" but rather factors such as memory consumption, speed and which on the whole is more reliable for general use.

请您参考如下方法:

如果您想将变量初始化为空值,使用空值文字会稍微快一些,因为它避免了必须进行名称查找。

也就是说,如果你写:

some_variable = str() 

Python 首先需要确保你没有写过像这样的傻东西

str = int 

首先在一些可见范围内,因此它必须进行递归名称查找。

但是如果你写:

some_variable = '' 

那么 '' 就只能是 str 了。 (类似的原则适用于列表和元组字面量:优先使用 [] 和 () 而不是 list() 和 tuple().)

不过,更一般地说:将变量初始化为空值通常被认为是 Python 中的代码异味。对于空列表之类的东西,请考虑使用生成器表达式 (... for ... in ...) 或生成器函数(使用 yield)——在大多数情况下,您完全可以避免设置空值,这通常被认为是一种更 Pythonic 的风格。