gpt4 book ai didi

python - 非变异 'add' 到集合的命名约定

转载 作者:行者123 更新时间:2023-12-04 09:54:09 24 4
gpt4 key购买 nike

我有一个类(class)叫 Grammar ,其中包含生产规则的集合。做事前用了Grammar对象,我通常需要为其添加一些额外的规则,在当前任务完成后应该忘记这些规则。所以,我想添加一个返回新 Grammar 的方法。对象,包含所有当前对象的规则以及新的规则。

我可以调用这个方法 .add , 像这样:

class Grammar:

def add(self, *rules):
'''Returns new Grammar object, with 'rules' added.'''
. . .

但是 .add传统上似乎是指通过向集合添加新元素来修改集合的方法。

Python 中是否有一个命名约定,用于返回一个新集合的方法,“添加”新元素,而不让读者期望它修改对象?

运算符重载?

我知道 .__add__方法由 + 调用运算符,并且约定确实不修改对象 - 像这样:
working_grammar = grammar + [rule1, rule2, rule3]

我正在考虑避免重载运算符,而是使用有意义的方法名称。但是,如果重载运算符生成常规的、预期的、可读的代码,我想了解更多相关信息 — 可能是库中众所周知的先例,或者是著名的样式指南中的建议。

最佳答案

我通常用输出命名函数。另外,使用动词+宾语。一些建议:

  • add_rule(或 addRule())
  • 已添加
  • added_rule
  • 插入

  • 对于'返回一个新集合,“添加”新元素'。通常的收藏是什么?列表、元组、集合?
  • 添加到规则列表
  • add_to_rule_set

  • 您也可以关注 PEP 8 -- Style Guide for Python Code

    关于python - 非变异 'add' 到集合的命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61961429/

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