可以使用对象调用 python 内置函数吗

Can a python builtin function be called using an object

我是 Python 的新手。我遇到过这段代码:

Xtrain 是一个 pandas 数据框对象,形状为 X train shape= (42000, 784)

但是我能够在 pandas 数据帧的 isnull 函数返回的对象上调用 python any() 内置函数

train = pd.read_csv(datapath+"/" +"train.csv")
X_train = train.drop(labels=["label"],axis=1)
X_train.isnull().any().describe()

我了解到可以从任何地方直接调用内置函数。以上是否意味着所有对象也可以访问它们?即在某种程度上每个 class 继承内置函数 ?

评论已经解决了问题,但是为了发布解决方案...

builtin 可以在任何地方、任何地方调用函数 - 尽管它们是否有效取决于您是否为该函数传递了有效输入。

any 是内置函数。

然而..在这种情况下,您实际上正在使用属于 pd.DataFrame class.

any 方法

试试 dir(pd.DataFrame) .. 你会看到 any 列在那里。

这意味着它是一个属于 class 的函数(使其成为一个方法)。

这与 builtin any 不同。

进一步证明...

import inspect

print(inspect.getfile(any))

产出

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\deden\AppData\Local\Continuum\anaconda3\lib\inspect.py", line 666, in getfile
    type(object).__name__))
TypeError: module, class, method, function, traceback, frame, or code object was expected, got builtin_function_or_method

print(inspect.getfile(pd.DataFrame.any))

产出

C:\Users\deden\AppData\Local\Continuum\anaconda3\lib\site-packages\pandas\core\generic.py