我正在为一个课程的一些代码写一个解释,我不小心把 method
和 function
这两个词交替使用了。我决定回去修改措辞,但在我的理解上遇到了一个漏洞。
根据我的理解,如果子程序不作用于类的实例(它的效果仅限于它的显式输入/输出) ,那么它就是 function
; 如果子程序作用于类的实例,那么它就是 method
(它可能会对使它不纯粹的实例产生副作用)。
关于这个话题有一个 讨论得不错。注意,根据接受的答案定义,静态 method
实际上应该是一个函数,因为实例从未被隐式传递,而且它不能访问任何实例的成员。
然而,考虑到这一点,静态 methods
实际上不应该是函数吗?
根据它们的定义,它们不作用于类的特定实例; 它们只是由于关系而“绑定”到类。我见过一些漂亮的网站把静态子例程称为“方法”(神使,弗雷多龙,程序简化) ,所以要么他们都忽略了术语,要么我漏掉了什么(我猜是后者)。
我想确认一下我的措辞是否正确。
有人能澄清一下吗?