I was wondering if there is a proper Python convention to distinguish between functions that either alter their arguments in place or functions that leave their arguments in tact and return an altered copy. For example, consider two functions that apply some permutation. Function
f takes a list as an argument and shuffles the elements around, while function
g takes a list, copies it, applies
f and then returns the altered copy.
For the above example, I figured that
f could be called
g could be
permutation(x), using verbs and nouns to distinguish. This is not always really optimal, though, and in some cases it might lead to confusion as to whether an argument is going to get changed along the way – especially if
f were to have some other value to return.
Is there a standard way to deal with this problem?