在Python中使用str()初始化空字符串文字的利弊



与C#等其他语言不同,无法从Python标准库导入空字符串。但是,有一个内置函数str(),当没有提供参数时,它默认为空字符串。

''empty_str = ''相比,使用str()表示空字符串的利弊是什么?我想开销可以忽略不计,而且它和''""一样可读。首先,即使在记事本中,也可以清楚地看到变量是str。一个明显的缺点是,你必须比''多键入几次键盘,尽管没有empty_str那么多。你能想到其他优点或缺点吗?

它有完全相同的效果,应该使用''(或""((类似于[]用于list()用于tuple{}用于dict(。

Python确实有一个内部全局缓存,用于存储小常量(短字符串,包括空字符串和小数字(。检查id('')id(0),它很可能总是返回相同的结果。(这是特定于实现的,但CPython将以这种方式运行。(

使用s = ''

首先,Python本身并不是世界上速度最快的语言,Python开发人员不应该进行这种优化,比如为空常量创建全局变量或用常量优化变量初始化。您的代码将被认为是不可维护的,因为其他人不会理解您的目的。

其次,任何静态代码分析器都将始终从常量中了解变量的类型。但当调用函数时,分析器必须找到声明并获取返回值类型。我不谈论str()——作为一个内置程序,它的返回类型对分析器来说是众所周知的。但总的来说,这种方法并不好,因为在Python中,程序员并不总是明确定义函数的返回值类型。

相关内容

最新更新