首页 > 解决方案 > 是否有警告用户传递的参数将被修改的约定?

问题描述

在 python 和(可选)pep8 中,是否有一种传统的方式来向用户发出信号,即传递的参数(例如 a dict)将被调用的函数修改?

标签: pythonpep8

解决方案


从函数返回None用作指示对象可能已就地修改。例如,sort()returns None, whilesorted()返回输入列表的排序副本,并保留输入本身(尽管实际上sort()是列表上的一个方法)。

这不是最好的指标:拥有良好的文档并将其拼写在文档字符串的顶部附近可能会更好(例如random.shuffle)。
但这似乎是内置和标准库函数所做的。


关于其他一些库的简要说明:NumPy 的sort返回并且不会就地修改,因此与内置sort函数相比,它具有不同的行为。Pandas 函数和方法通常有一个inplace布尔参数,默认情况下往往是False,因此默认情况下会返回修改后的副本。


推荐阅读