我应该避免在Python中使用“str”作为变量名吗?

c86crjj0  于 2023-02-18  发布在  Python
关注(0)|答案(3)|浏览(252)

我注意到Python中的某些变量名会被Vim标记为蓝色高亮,而其他变量名则不会。我对保留字的概念很熟悉,但根据this question,“str”似乎不是保留字之一。
尽管有高亮显示,但似乎并没有引起任何问题。举个简单的例子:

str = "Hello"
sfgfgf = "World"
print(str)
print(sfgfgf)

下面是Vim高亮显示的屏幕截图:

在变量定义和print语句中,str都用蓝色高亮显示,而sfgfgf没有,但是这段代码很高兴地打印了“Hello”和“World”。
对于“int”也是如此,而且我确信还有其他的例子(下面的代码运行起来也毫无怨言):

int = 1
intentional_or_no = 5
print(int)
print(intentional_or_no)

所以,我的问题是:
1.使用诸如“str”和“int”之类的单词作为变量名有什么问题吗?
1.如果没有,为什么Vim用蓝色突出显示它们?

omhiaaxx

omhiaaxx1#

是的,您应该避免使用str作为变量,因为
A)根据变量的用途来命名变量,使您和其他人都更容易阅读代码。
和B)str()是一个转换字符串中的内容(整数,浮点数等)的函数。这就是为什么它被突出显示。
它仍然可以工作,但最好为变量使用其他名称

rm5edbpk

rm5edbpk2#

突出显示是掉毛的一部分,暗示你正在做的是不好的做法。随着你的脚本的增长,用你自己的保留字覆盖保留字将导致混乱。
例如,如果你在Python中开发了自己的“str”函数,并且在代码中的其他地方引用了“str”,你会期望使用Python函数还是你的函数?

2vuwiymt

2vuwiymt3#

要理解为什么这是不好的,请看下面的例子:

num = 10
real = 5.4
print(real, int(real))

将产生:

5.4 5

现在,如果你写:

int = 10
real = 5.4
print(real, int(real))

您将收到此错误:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-3-39e8d577bf55> in <module>
      2 int = 10
      3 real = 5.4
----> 4 print(real, int(real))

TypeError: 'int' object is not callable

本地名称会覆盖globalbuilt-in,使它们不可用,除非您引入名称空间,但这并不总是可能的。

相关问题