Python中Function(函数)和methon(方法)
来源:互联网 发布:嗯淘宝网店教学视频 编辑:程序博客网 时间:2024/06/16 20:57
(转载)http://blog.csdn.net/chili_min/article/details/10447923
在Python中,对这两个东西有明确的规定:
函数function —— A series of statements which returns some value toa caller. It can also be passed zero or more arguments which may beused in the execution of the body.
方法method —— A function which is defined inside a class body. Ifcalled as an attribute of an instance of that class, the methodwill get the instance object as its first argument (which isusually called self).
从定义的角度上看,我们知道函数(function)就相当于一个数学公式,它理论上不与其它东西关系,它只需要相关的参数就可以。所以普通的在module中定义的称谓函数是很有道理的。
那么方法的意思就很明确了,它是与某个对象相互关联的,也就是说它的实现与某个对象有关联关系。这就是方法。虽然它的定义方式和函数是一样的。也就是说,在Class定义的函数就是方法。
从上面的角度看似乎很有道理。
>>> def fun():
>>> type(fun)
<class'function'>
>>> class Cla():
>>> i=Cla()
>>>Cla.fun.__class__
<class'function'>
>>>i.fun.__class__
<class 'method'>
>>>type(Cla.fun1)
<class 'method'> #这里又是方法
>>> type(i.fun1)
<class 'method'> #这里仍然是方法
>>>type(Cla.fun2)
<class 'function'> #这里却是函数
>>> type(i.fun2)
<class 'function'> #这里却是函数
事实上,上面的结果是可以解释的:
1,普通方法(老版中直接就是"instancemethod")在module中与在Class中定义的普通函数,从其本身而言是没有什么区别的,他们都是对象函数属性。
2,类方法("classmethod"),因为类同样是对象,所以如果函数与类进行联系了话(与实例方法一样的模式)那么就能够这么说了!
3,静态方法,虽然定义在内部,并且也较方法,但是却不与任何对象联系,与从类访问方法是一样的,他们仍然是函数。
函数的定义自然不变。
方法的定义可以是这样的,与某个对象进行绑定使用的函数。注意哦。绑定不是指" ."这个符号,这个符号说实在的只有域名的作用。绑定在这里是指,会默认赋值该绑定的对象。
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- 转 Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- Python函数(function)与方法(method)区别
- Python的函数和方法装饰漫谈(Function decorator)
- 方法(method)和函数(function)的区别
- Verilog中任务(task)和函数(function)
- 我所理解的Python里method和function的区别(关键词:method/方法/function/函数)
- oracle 中函数(function)的学习
- javascript 中函数的调用:直接调用函数和new function()区别
- 在python中调用自己写的方法或函数function
- Python中如何避免使用多个分支语句(多个if和else)——函数字典(Function Map)简介
- Function:--js中创建函数的方法
- 设计模式 笔记 工厂方法 Factory Methon
- mybaits----多表查询实现
- 如何获取网络延迟,手机电量
- SpringBoot之thymeleaf(Q)
- Jvm内部锁机制总结
- UVA 10385——Duathlon(三分)
- Python中Function(函数)和methon(方法)
- Need to read
- FFmpeg SDK开发课程笔记(一):调用FFmpeg SDK对YUV视频序列进行编码
- asp用户登录笔记
- javascript原型链理解
- iOS中tcp+protobuf
- 模态窗口详解及各浏览器适配经验分享
- 8.25面试SLAM算法工程师总结
- VS2008 连接TFS的问题