在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():

pass

>>> type(fun)

#没有问题

>>> class Cla():

def fun():

pass

[email protected]

def fun1(cls):

pass

[email protected]

def fun2():

pass

>>> i=Cla()

>>>Cla.fun.__class__

#为什么还是函数

>>>i.fun.__class__    #这个还像话

>>>type(Cla.fun1)

#这里又是方法

>>> type(i.fun1)

#这里仍然是方法

>>>type(Cla.fun2)

#这里却是函数

>>> type(i.fun2)

#这里却是函数

事实上,上面的结果是可以解释的:

1,普通方法(老版中直接就是"instancemethod")在module中与在Class中定义的普通函数,从其本身而言是没有什么区别的,他们都是对象函数属性。 之所以会被说在Class中的定义的函数被称为方法,是因为它本来就是面向将来的实例对象的,其实他们就是实例方法,这些方法是与实例相联系的(从实例出发访问该函数会自动赋值)。所以你从Class访问仍然是一个函数

2,类方法("classmethod"),因为类同样是对象,所以如果函数与类进行联系了话(与实例方法一样的模式)那么就能够这么说了!

3,静态方法,虽然定义在内部,并且也较方法,但是却不与任何对象联系,与从类访问方法是一样的,他们仍然是函数。 这样看来上面的定义可以改改了:

函数的定义自然不变。

方法的定义可以是这样的,与某个对象进行绑定使用的函数。注意哦。绑定不是指" ."这个符号,这个符号说实在的只有域名的作用。绑定在这里是指,会默认赋值该绑定的对象。

python中function函数的用法_Python中Function(函数)和methon(方法)相关推荐

  1. [转载] python中string函数的用法_python中string模块各属性以及函数的用法

    参考链接: Python中的string.octdigits 任何语言都离不开字符,那就会涉及对字符的操作,尤其是脚本语言更是频繁,不管是生产环境还是面试考验都要面对字符串的操作. python的字符 ...

  2. python中pop函数的用法_python中pop()函数怎么用

    python中pop()函数的用法:pop()函数用于移除列表中的一个元素(默认最后一个元素),并且返回从列表中移除的元素对象.函数语法:[list.pop(ojb=list[-1])]. pop() ...

  3. python中字符串函数的用法_python中字符串内置函数的用法介绍(代码)

    本篇文章给大家带来的内容是关于python中字符串内置函数的用法介绍(代码) ,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. capitalize() 首字母大写a='somewor ...

  4. python中字符串函数的用法_python中字符串内置函数的用法总结

    capitalize() 首字母大写 a='someword' b=a.capitalize() print(b) ->Someword casefold()&lower() 所有字母变 ...

  5. python正则findall函数的用法_python中正则表达式 re.findall 用法

    python中正则表达式 re.findall 用法 Python 正则表达式 正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配. Python 自1.5版本起增加了r ...

  6. python中divmod函数的用法_Python中divmod函数的用法

    Python中divmod函数的用法,语言,余数,是一种,面向对象,函数 Python中divmod函数的用法 Python中divmod函数的用法 在Python中divmod函数的作用是把除数和余 ...

  7. python中的随机函数的用法_python中的随机函数小结

    本系列不会对python语法,理论作详细说明:所以不是一个学习教材:而这里只是我一个学习python的某些专题的总结. 1. random()函数 描述:random() 方法返回随机生成的一个实数, ...

  8. python中字典del的用法_python中字典(Dictionary)用法实例详解

    本文展示了字典在python中的使用.分享给大家参考.具体分析如下: 字典是一种映射结构的数据类型,由无序的"键值对"组成.字典的关键字必须是不可改变的类型,如字符串.数字和元组: ...

  9. python中with open的用法_python中open和with open有什么区别?

    python中,open函数用于打开文件,通过文件对象对文件进行各种处理.with open函数用于文件读写,与open函数功能看起来相同.二者相差一个关键词"with",有什么区 ...

最新文章

  1. 想要快速获客?送你 2 个小程序互推方法
  2. Python深浅拷贝教程-面试必问内容
  3. matlab华侨大学,闫铮-华侨大学-信息科学与工程学院
  4. liferay 几个工具类
  5. 一步步优化JVM六:优化吞吐量[转]
  6. 【会议/期刊】中科院推荐计算机领域人工智能方向会议和期刊列表
  7. py第五天,列表的练习,每日菜谱
  8. 新浪研发中心: Berkeley DB 使用经验总结
  9. SDR与DDR的区别
  10. linux 环境变量_linux的环境变量
  11. 计算机软件著作权登记
  12. android音乐加速软件,音乐变速器app
  13. 扩展ACL ---王贝的学习笔记
  14. C#-进击Hangfire
  15. 解决java虚拟机内存不足的错误 java.lang.OutOfMemoryError: PermGen space 没有文件TOMCAT_HOME/bin/catalina.sh
  16. 7. GC 调优(实战篇) - GC参考手册
  17. ThinkSNS安装手记
  18. 免费DataGridView打印及.NET轻松打印控件(VB打印,C#打印)
  19. 如何解决微信屏蔽app下载链接
  20. 语义增强的大规模多元图简化可视分析方法

热门文章

  1. 用QEMU构建嵌入式LINUX系统
  2. 分布式事务的特征、原理、以及常见3种解决方案
  3. Unix/Linux 目录结构的来历
  4. GitHub#python#:用自组织映射解决旅行商问题
  5. Matlab二进制文件的读写
  6. Kotlin 条件控制(六)
  7. python ctypes struct_Python之ctypes
  8. asp php 对照表,asp 与php中常用函数对比
  9. Docker实践(七)部署SpringBoot微服务
  10. c语言中根据数据的组织形式 把文件分为,根据数据的组织形式,C中将文件分为______________和____________.._简答题试题答案...