17

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

这么长的名字对python来说会是个问题吗?属性名称是否有最大长度?

4

3 回答 3

38

2.3. The Python Language Reference 中的标识符和关键字

标识符的长度不受限制。


但是您很可能会违反PEP-8,这并不是很酷:

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

您还将违反PEP-20(Python 之禅):

可读性很重要。

于 2013-06-04T14:48:10.570 回答
5

它们可能是程序员的问题。保持函数名称合理简短,并使用文档字符串来记录它们。

于 2013-06-04T14:48:31.797 回答
3

由于属性名称只是被散列并转换inst.__dict__为您将遇到的 99% 的类的键,因此对长度没有真正的限制。只要它是可散列的,它就可以用作属性名称。对于其他 1% 的类,它们以破坏任何可哈希值是有效属性名称的保证的方式摆弄__setattr__\\ __getattr__,但前面的不适用。__getattribute__

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

于 2013-06-04T14:51:31.753 回答