方法和属性python之间的区别?

2024-04-20 04:23:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我可能在这里使用了错误的术语,但我想解释一下在对象上调用函数(即方法)和对象本身的属性之间的区别。你知道吗

采取以下措施:

df = pd.DataFrame({'a':[4, 5, 6, 7],
                   'b':[3, 2, 5, 4]})

可以对df调用sum()方法/函数,也可以对df调用columns属性。我可能会在链接方法和使用.调用属性之间产生混淆。你知道吗

df.sum()
df.columns

Tags: columns对象方法函数dataframedf属性链接
2条回答

不能“调用”数据帧的df.columns部分。它是数据帧的数据部分,您可以“引用”它。df.sum()您可以“调用”,因为sum()是数据帧的可执行部分。你知道吗

这两部分的数据框架(eem)都有点棘手。它们都可以更改、被继承等等,但它们确实不同:不能“调用”列,而且(通常)不引用sum()。你知道吗

他们是一样的。方法基本上就是属性,它们发生在类型function或任何其他可运行类型上。如果你这样做了

>>> f = df.sum

会很好用的。如果你再检查一下类型,你会发现

>>> type(f)
<type 'instancemethod'>

或者类似的东西。您可以将该类型的任何对象作为函数调用,这就是您可以执行df.sum()的原因:首先,它会找到df的属性,该属性恰好是一个函数,然后它会调用它。你知道吗

相关问题 更多 >