【发布时间】:2017-07-23 23:15:33
【问题描述】:
在编写一个接受可变对象的函数时,该对象可能会被改变,是否有必要将该对象返回给调用者?
我的意思是必要的......
- 是否有与此相关的特定 PEP 指南?
- 如果没有,Python 编程领域最常见的是什么?
一点代码:
def foo(args):
args['a'] = 'new-value'
args['b'] = args['b'] + 1
# is there a need for a 'return args' ?
args = {'a': 'old-value', 'b': 99}
foo(args) # is there a need for args = foo(args)
print(args['a'], args['b']) # outputs new-value 100
“显式优于隐式。”让我觉得我应该让args 的潜力在主体中非常明确地改变,这样就不必查看函数来查看args 是否会改变......
【问题讨论】:
-
我认为最好有回报,这样我就可以马上做
print(foo(args)) -
通常,修改对象的方法会返回
None,除非返回其他东西有意义(例如,popitem)。不过我现在没有任何指针。 -
返回一封来自 python 开发人员的相关邮件。不是 PEP,但还是很有趣:mail.python.org/pipermail/python-dev/2003-October/038855.html
-
不是风格问题,我想说这不属于 PEP8