python - 如果 Python 中的约定是大写类,那么为什么 list() 不大写?不是一个类吗?

标签 python coding-style naming-conventions

当我看到类定义class Foo:时,我总是看到它们以大写字母开头。

但是,列表 [] 或 dict {} 或其他一些内置类型不也是一个类吗?就此而言,在 Python 的 IDLE 中键入的所有内容都是自动以紫色进行颜色编码的关键字(使用 Window 的二进制分布),它本身就是一个类,对吧?

spam = list()

spam 现在是 list()

的一个实例

所以我的问题是,为什么 Python 允许我们首先做类似 list = list() 之类的事情,而可能没有人这样做。而且,为什么不是 list = List()

语言的开发者是否决定不使用任何约定,而大多数 Python 程序员确实如此命名他们的类?

最佳答案

是的,大写开头的类是惯例,如 PEP 8 中所述.

您是正确的,许多内置类型不遵循此约定。这些是 Python 早期阶段的遗留物,当时用户定义的类和内置类型之间存在更大的差异。然而,用 C 语言编写的内置或扩展类型似乎仍然更可能使用小写名称(例如,numpy.array,而不是 numpy.Array)。

尽管如此,惯例是在 Python 代码中为您自己的类使用大写首字母。

关于python - 如果 Python 中的约定是大写类,那么为什么 list() 不大写?不是一个类吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14973963/

相关文章:

python - 如何使 python 要求可移植?

python - 过滤列中包含某些值的行

python - 5D 卡尔曼滤波器不起作用,我们不确定哪里出了问题

unit-testing - 在我的单元测试中避免 try...catch...finally... 的最佳方法是什么?

c# - 使用相同名称的包/命名空间和类是一种好习惯吗?

naming-conventions - 非常长的类/变量/属性/方法名称

python - 为什么这个 codewars 算法不能只使用函数?

javascript - clickHandler 或handleClick 或onClick 或signUp 或handleSignUp 或signUpHandler?

c++ - 使用宏来专门化 std::swap

asp.net-mvc - 域模型命名空间命名约定