Python 中的就地函数

say*_*yth 3 python function python-3.x

Python中有一个就地函数的概念。例如,shuffle它返回的是 inplace None

如何确定函数是否就位?

from random import shuffle

print(type(shuffle))

<class 'method'>
Run Code Online (Sandbox Code Playgroud)

所以我知道它是一个methodfrom 类random,但是是否有一个特殊变量将某些函数定义为就地函数?

Jim*_*ard 5

您无法预先了解给定函数的操作。您需要查看源代码并推断出此信息,或者检查其文档字符串并希望开发人员记录此行为。

例如,在list.sort

help(list.sort)
Help on method_descriptor:

sort(...)
    L.sort(key=None, reverse=False) -> None -- stable sort *IN PLACE*
Run Code Online (Sandbox Code Playgroud)

对于某些类型上操作的函数,它们的可变性通常可以让您提取有关操作的一些知识。例如,您可以确定所有对字符串进行操作的函数最终都会返回一个新函数,这意味着它们无法执行就地操作。这是因为你应该知道 Python 中的字符串是不可变的对象。