[整理]类与方法的区别是什么?

以下是stackoverflow上: Difference between a method and a function问题的高票回答。

A function is a piece of code that is called by name. It can be passed data to operate on (i.e. the parameters) and can optionally return data (the return value). All data that is passed to a function is explicitly passed. A method is a piece of code that is called by a name that is associated with an object. In most respects it is identical to a function except for two key differences: A method is implicitly passed the object on which it was called. A method is able to operate on data that is contained within the class (remembering that an object is an instance of a class - the class is the definition, the object is an instance of that data). (this is a simplified explanation, ignoring issues of scope etc.)

翻译以下就是:

函数是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。
所有传递给函数的数据都是显式传递的。方法也是一段代码,也通过名字来进行调用,但它跟一个对象相关联。
方法和函数大致上是相同的,但有两个主要的不同之处:
方法中的数据是隐式传递的;方法可以操作类内部的数据(请记住,对象是类的实例化–类定义了一个数据类型,而对象是该数据类型的一个实例化)
以上只是简略的解释,忽略了作用域之类的问题。

《Python基础教程》中讲到:

类的方法与普通的函数只有一个特别的区别——它们必须有一个额外的第一个参数名称,但是在调用这个方法的时候你不为这个参数赋值,Python会提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self

posted @ 2017-11-29 16:05  bingo彬哥  阅读(2955)  评论(0编辑  收藏  举报
本站总访问量