Python函数(function)与方法(method)区别
来源:互联网 发布:网站发布到域名 编辑:程序博客网 时间:2024/06/05 15:08
一直以来都以为函数和方法是一个东西,平时区分也不是很详细,后来一搜索发现自己平时叫法是错的。
先看一段代码
def fun(): passprint fun
结果如下:
<function fun at 0x00000000022BC3C8>
可以看出:
单独定义的一个function是function,它是一个函数。我个人的理解是,在class外部定义的可执行函数,都是函数。
再看另外一段代码
# coding:utf-8class Apple: def fun1(self): return 'normal' @staticmethod def fun2(): return 'staticmethod' @classmethod def fun3(cls): return 'classmethod'print Apple.fun1print Apple.fun2print Apple.fun3print "-"*80apple = Apple()print apple.fun1print apple.fun2print apple.fun3
结果如下:
<unbound method Apple.fun1><function fun2 at 0x00000000021DC4A8><bound method classobj.fun3 of <class __main__.Apple at 0x0000000001D8C768>>-------------------------------------------------------------------------------------<bound method Apple.fun1 of <__main__.Apple instance at 0x00000000021DAE08>><function fun2 at 0x00000000021DC4A8><bound method classobj.fun3 of <class __main__.Apple at 0x0000000001D8C768>>
可以看出:
- 在class内定义的普通方法,如fun1,因为它是要面向将来实例化对象的,其实它就是一个实例方法。它属于method,是一个方法。
- 在class内定义的静态方法,如fun2,它与任何对象都没有联系,等同于是在class外定义的function,它属于函数。
- 在class内定义的类方法,如fun3,它第一个参数必须是cls,它与class本身是绑定关系,它属于方法。
简单总结:
- 与类和实例无绑定关系的function都属于函数(function);
- 与类和实例有绑定关系的function都属于方法(method)。
谢谢,不对之处还请指正。
阅读全文
0 0
- Python函数(function)与方法(method)区别
- 方法(method)和函数(function)的区别
- 我所理解的Python里method和function的区别(关键词:method/方法/function/函数)
- Python: 函数与方法的区别 以及 Bound Method 和 Unbound Method
- Python: 函数与方法的区别 以及 Bound Method 和 Unbound Method
- method 与 function的区别
- function method(){}与var method = function(){}的区别
- Python里method和function的区别
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- 转 Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- Python中Function(函数)和methon(方法)
- 区别method和function
- Python 魔术方法(Magic Method)
- Python 魔术方法(Magic Method)
- AS3中的一些基本定义,Function与Method的区别
- JAVA集合中的一些排序算法
- Leetcode 652. Find Duplicate Subtrees 寻找重复子树 解题报告
- maven常用命令介绍
- WordPress 统计插件WP-PostViews使用详解
- bayes python 机器学习实战
- Python函数(function)与方法(method)区别
- redis-cluster安装部署记录
- HTML5中表单验证的8种方法
- 安装CherryTree,报错无法找到 gtksourceview2
- 2017多校六 1002题 hdu 6097 Mindis 相似三角形 计算几何
- 【Codeforces 608B】Hamming Distance Sum(前缀和)
- 2.Android灯光系统_编写HAL_lights.c
- java异常简介及架构
- SpringBoot_restful