gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 22:27:41 25 4
gpt4 key购买 nike

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

假设您想要同时实现这两个功能,您应该如何命名这些函数?

示例:假设您需要一个图像对象的 crop() 函数。在 Ruby 中,这很简单,因为如果您返回一个副本,您应该使用 crop(),如果您修改原始实例,则应该使用 crop!()

最佳答案

不确定某些 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']

我会将您的函数命名为 crop() [就地修改对象] 和 cropped() [返回修改后的副本]。

编辑:我不懂 ruby​​,但在 python 中,两者之间的区别纯粹是约定俗成的(函数/方法行为与您如何调用它无关)。

喂!

关于确实修改对象或返回修改后的副本的函数的 Python 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8211890/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com