与C#等其他语言不同,无法从Python标准库导入空字符串。但是,有一个内置函数str()
,当没有提供参数时,它默认为空字符串。
与''
或empty_str = ''
相比,使用str()
表示空字符串的利弊是什么?我想开销可以忽略不计,而且它和''
或""
一样可读。首先,即使在记事本中,也可以清楚地看到变量是str
。一个明显的缺点是,你必须比''
多键入几次键盘,尽管没有empty_str
那么多。你能想到其他优点或缺点吗?
它有完全相同的效果,应该使用''
(或""
((类似于[]
用于list
,()
用于tuple
,{}
用于dict
(。
Python确实有一个内部全局缓存,用于存储小常量(短字符串,包括空字符串和小数字(。检查id('')
或id(0)
,它很可能总是返回相同的结果。(这是特定于实现的,但CPython将以这种方式运行。(
使用s = ''
。
首先,Python本身并不是世界上速度最快的语言,Python开发人员不应该进行这种优化,比如为空常量创建全局变量或用常量优化变量初始化。您的代码将被认为是不可维护的,因为其他人不会理解您的目的。
其次,任何静态代码分析器都将始终从常量中了解变量的类型。但当调用函数时,分析器必须找到声明并获取返回值类型。我不谈论str()
——作为一个内置程序,它的返回类型对分析器来说是众所周知的。但总的来说,这种方法并不好,因为在Python中,程序员并不总是明确定义函数的返回值类型。