可以使用对象调用 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
我是 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