python中对象的“方法”和“属性”之间有什么区别?

时间:2018-12-28 11:27:53

标签: python methods properties

假设我有一个名为df的数据帧对象,head()是一种可应用于df以查看该数据帧的前5条记录的方法,而df.size是一个获取大小的属性。数据框。

对于属性,我们没有像在方法中那样使用'()'。最初这并没有造成混淆。 谁能解释python中的属性和方法之间的基本区别是什么。我的意思是为什么我们必须将size定义为数据框的属性,为什么不将其定义为将返回数据框大小的方法。

2 个答案:

答案 0 :(得分:1)

所以我想将您链接到此答案,因为我认为这很好地解释了这一点。

https://www.tutorialspoint.com/What-is-the-difference-between-attributes-and-properties-in-python

如果我不得不用自己的话来解释它,则属性是具有方法(获取,设置和删除)的对象的“属性”。

因此,如果我理解正确,那么 df.size 将是您的属性,然后您需要为此属性定义get,set和delete方法。另外,我建议您仔细阅读python类文档,以获取正确的用法和定义。

https://docs.python.org/3/tutorial/classes.html

答案 1 :(得分:0)

在上面提到的示例中,可以将参数传递给df.head()函数,因为您不能传递属性的参数。 对于上述相同示例,如果您编写了df.head(20),它将返回前20行。