Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 库类名的大小写_Python_Python 3.x - Fatal编程技术网

Python 库类名的大小写

Python 库类名的大小写,python,python-3.x,Python,Python 3.x,为什么collection.defaultdict和collection.orderedict有不同的大写字母 我是否应该注意到一些细微的差别 (P3K)通常,按照良好的风格,阶级是资本化的 def MyClass (object): pass my_instance = MyClass() 像这样 您应该阅读此文档: defaultdict是用C编写的,pep8不适用,另一方面OrderDict是用python编写的 您可以在此处阅读Python的C实现的C代码规范: 参考:源代码

为什么
collection.defaultdict
collection.orderedict
有不同的大写字母

我是否应该注意到一些细微的差别


(P3K)

通常,按照良好的风格,阶级是资本化的

def MyClass (object):
    pass

my_instance = MyClass()
像这样

您应该阅读此文档:
defaultdict是用C编写的,pep8不适用,另一方面OrderDict是用python编写的

您可以在此处阅读Python的C实现的C代码规范:

参考:源代码python2.7

defaultdict  : Modules/_collectionsmodule.c
OrderDict : Lib/collections.py

类名的大小写是不相关的,它没有任何意义。除了Python有时会有机地发展,而且标准库不像其他大型库(如Win32 API或Java标准库)那样具有同质化的感觉。

那么问题是,
defaultdict
?嗯,为什么不是这样呢。好问题。:-)我认为它可能与其父类dict保持一致。dict是一种内置类型,因此是小写的(str,int,…)。可能是作者希望保留将defaultdict引入内置名称空间的选项,以及dict。在这种情况下,违反规则(参见PEP8)是有意义的。
OrderedDict
也是
dict
的一个子类,它的大写形式正确。至于将
defaultdict
转换为内置类,为什么不同时转换大小写呢?因此,Python库中的任何新类都应该用小写字母编写,以防有朝一日它会成为一个内置类。singularity最终正确地解释了这一点,这是绝对有意义的。为什么C类不能以大写字母向Python库公开呢?C区分大小写。我遗漏了什么?@max:每种语言都有自己的编码规范,我们不能用python规范pep8在C中编码,对吗?这里是C扩展的标准:我大体上同意。。。但是,当用C编写函数的唯一目的是为Python的标准库提供库函数时,我会使用Python风格的函数名。应该注意的是,在Python3中,有一项工作是标准化内置模块和类的名称。