用于修改对象或返回修改后的副本的函数的Python命名约定

sor*_*rin 6 python naming-conventions command-query-separation

对于可以返回修改对象或仅修改实例的函数,Python中的命名约定是什么.

我们假设您要实现两者,如何命名函数?

示例:假设您需要crop()Image对象的函数.我Ruby很简单,因为你应该使用crop()如果你返回一个副本并crop!()修改原始实例.

mac*_*mac 5

不确定某些PEP中是否有精确的指导,但是看看某些函数/方法在python核心中是如何工作的,我个人使用动词共轭.例如,灵感来自:

>>> l = list('hello world')
>>> l
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> sorted(l)
[' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
>>> l
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']
>>> l.sort()
>>> l
[' ', 'd', 'e', 'h', 'l', 'l', 'l', 'o', 'o', 'r', 'w']
Run Code Online (Sandbox Code Playgroud)

我会命名你的函数crop()[在适当的位置修改对象]和cropped()[返回修改后的副本].

编辑:我不知道ruby,但在python中,两者之间的区别纯粹是传统的(函数/方法行为与你如何调用它无关).

HTH!