gpt4 book ai didi

python - python 模块常量的重要性

转载 作者:行者123 更新时间:2023-11-28 21:38:20 25 4
gpt4 key购买 nike

在了解 tkinter 模块时,我遇到了一些变量,例如 tkinter.TOPtkinter.BOTTOMtkinter .NW

我还了解到,如果将它们替换为诸如 'top''bottom''nw' 分别。

我试图调查这些变量,发现它们只是字符串对象:

>>> import tkinter
>>> tkinter.TOP
'top'
>>> type(tkinter.TOP)
<class 'str'>

我的问题是,如果只能用字符串替换这些“模块常量”,它们有什么用?它们是否提供某种性能改进?我在谷歌上搜索了一段时间,但找不到解释。

最佳答案

我的建议是永远不要使用 tkinter 常量。我的猜测是添加它们是为了更加 pythonic,但在我看来,这只会让代码更难阅读。与使用字符串文字相比,它们没有提供任何性能改进。不过,使用它们是无害的,所以这真的取决于个人喜好。

它们的内部值可能永远不会改变1,因此使用常量而不是它所代表的字符串字面值根本没有任何优势。

使用字符串文字的额外好处是它需要的代码更少。例如,我发现这个:

something.grid(..., sticky="nsew")

...比这个更可取:

something.grid(..., sticky=tk.N+tk.S+tk.E+tk.W)

还值得注意的是,官方 tkinter 文档经常显示字符串文字的使用,而不是这些常量。例如:


1 Tk——构建 tkinter 的库——非常非常重视向后兼容性。这些常量几十年都没有改变。鉴于常量名称本身反射(reflect)了常量的实际值,如果值应该改变,那么几乎可以肯定常量的名称也会改变。将名为 N 的常量定义为“top”或“upper”或任何新值可能会很奇怪。

关于python - python 模块常量的重要性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48426912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com