python中属性名称的最大长度是多少?

时间:2013-06-04 14:46:42

标签: python python-2.7

我正在编写一组python函数,它们对源代码项目执行某种一致性检查。我想为这些函数指定相当详细的名称,例如:check_5_theVersionOfAllVPropsMatchesTheVersionOfTheAutolinkHeader()

这样过长的名字会成为python的问题吗?属性名称是否有最大长度?

3 个答案:

答案 0 :(得分:29)

来自Python语言参考的

2.3. Identifiers and keywords

  

标识符的长度不受限制。


但你最有可能违反PEP-8,这不是很酷:

  

将所有行限制为最多79个字符。

你也会违反PEP-20(Python的禅宗):

  

可读性计数。

答案 1 :(得分:4)

对于程序员来说,这可能是一个问题。保持函数名称相当短,并使用docstrings记录它们。

答案 2 :(得分:3)

由于属性名称只需要进行哈希处理并转入inst.__dict__上的键,因为99%的类会遇到这种情况,因此长度没有实际限制。只要它是可以清除的,它就可以作为属性名称使用。对于使用__setattr__ \ __getattr__ \ __getattribute__的其他1%的类,其方式可以打破保证任何hashable是有效的属性名称,但前者不适用。 / p>

当然,正如其他人所指出的那样,您将拥有更长命名属性的代码样式和质量问题。如果你发现自己需要这么长的名字,那么很可能表明你的程序存在设计缺陷,你应该考虑给你的数据提供更多的层次结构,更好地抽象和划分你的功能和方法中的责任。