在Python类名中使用重音符号是一种不好的做法吗?

3

我正在使用Python3开发一个应用程序,需要创建一个代表日记的类。我想用我的语言给它命名,并且这个名称带有重音。这样做是否不好?因为这个字符会导致问题吗?

class Diário(Base): pass


2
不,这并不重要,尽管它可能会让其他使用英文键盘的程序员感到沮丧 ;) - tckmn
4
在Python 3中不行。 - Martijn Pieters
2
@VictorCastilloTorres:那么呢?这个问题被标记为[python-3.x] - Martijn Pieters
1
@ArthurJulião:反正为什么要费心呢?编程时为什么需要考虑口音呢?就算是一个拼写老师也不会审查你的源代码,这只是少了一件需要担心的事情而已。 - Paulo Bu
3
作为一个以英语为母语的人,我自然而然地担心在我退休之前普通话会成为国际交流的事实标准语言,而不是之后。因此,我非常不愿意告诉外国人唯一好的做法就是无论面向何种受众,都要用英语进行编程。如果我支持这样的做法,那么当它变化时我会感到遗憾,但目前来看,这确实是许多/大多数程序员所接受的惯例... - Steve Jessop
显示剩余14条评论
3个回答

6

假设您正在使用 Python 3,鉴于标签。

在编写代码时,清晰易懂是一种好的实践。如果您正在编写的程序,例如是由讲您语言的程序员开发的专有软件,那么当然要将类命名为 Diário,而不是 Diario。毫无意义地杀害自己的语言并使事情难以理解。

您可以阅读 PEP8,但它对编码的评论主要是面向为 Python 标准库做出贡献的程序员(我猜您不是)。 PEP8 并不像一些人所说的那样严格 - 它只坚持标准库使用英语,然后声明:

鼓励全球受众的开源项目采用类似的策略。

您应该理解为除非您确信不会被更广泛的受众阅读,否则您的代码(和注释!)都应为英语。这就是您需要了解的所有良好实践-出于谨慎起见,请使用英语,除非您确定不必要。只有您可以决定在您的情况下最佳实践是什么。


"PEP8并不像一些人所说的那样严格" -- 具体来说,PEP8是CPython分发的代码风格指南,而不是适用于所有Python代码的风格指南。当然,它在其他项目中也很常用,因为如果你喜欢GvR的语言,那么你很可能会同意他的很多风格 :-) - Steve Jessop

5

是的,Python 2.7不允许这样做(会抛出SyntaxError)。此外,使用其他非英语语言命名变量、类或其他内容是一种不良习惯。

更多细节请参见PEP8


1

简短的回答是最好不要。长一点的回答是在Python 2.7中不可能这样做,因为会导致语法错误,但是Python 3可以允许您这样做,尽管这是非常非常非常不好的做法。不仅在Python中,而且在任何其他语言中都是如此。


2
为什么这是不好的做法?如果没有支持证据,那就只是一种看法。我们可以将Python 2排除在外;在Python 3中,这不是语法错误。 - Martijn Pieters
2
当然,你可以自由地做任何你想做的事情。但是,你应该尽量避免使用可能会在未来引起大问题的东西——从使用生成文档的工具到让其他人参与项目。证据——我的上一份工作中,我不得不迁移数据库,这些数据库是由外部公司编写的软件创建的。这家外部公司来自罗马尼亚,因此整个数据库命名都是用罗马尼亚语的。忘记我不得不学习几百个罗马尼亚单词的事实,当我们到达编码部分时,我甚至考虑过自杀。 - Alexander Ejbekov
2
我并没有说我不同意这是一种糟糕的做法。我只是指出你的回答并没有提供任何证据来解释为什么这是一种不好的做法。 - Martijn Pieters
个人轶事并不是证据。 :-) 我试图避免这个问题变成一个意见盛宴。让我们在这里保持答案的客观性。 - Martijn Pieters
编写处理文本(源代码是文本的特殊情况)的代码,而不能处理非ASCII字符,这也是非常非常非常糟糕的做法。因此,假设不能使用非ASCII字符是因为文档生成工具太弱了,这种想法过于保守。但由于我个人不知道doctools I使用的哪些字符被正确处理,所以有一个预防原则,这意味着我不会在没有至少测试我依赖的工具的情况下使用非ASCII类名。例如,在Python 2上,我曾经在UTF-8源代码中遇到过coverage的问题。 - Steve Jessop
希望文档工具、覆盖率、IDE和其他工具都能为Python 3进行修复。但我不确定,因此对我来说,一个说明哪些工具能用,哪些不能用的答案会很有趣且有用。 - Steve Jessop

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接