以下是综合多家说法的个人理解总结,仅为做到理解它们的区别与联系,不保证严谨。

函数

函数是封装了一些独立的功能,可以直接调用,python内置了许多函数,同时可以自建函数来使用。

独立的函数是函数(像 python3 里print()),类里封装的一些可被直接使用或是被类直接调用的都可以叫做函数(如os.path.join(path, paths))。

方法

方法是对象可调用的函数。

联系

方法是与对象紧密相连的函数。通常像下面这样调用:

object.method(arguments)

所以,函数在面向不同角色的时候只是发生了身份的转变,这对实现它的功能并没什么影响。

用 python 内置函数验证:

In [6]: from types import FunctionType, MethodType

In [7]: class Foo(object):

...: def func(self):

...: pass

In [8]: obj = Foo()

In [9]: obj.func()

In [11]: Foo.func(123)

In [12]: print(isinstance(obj.func,MethodType))

True

In [13]: print(isinstance(Foo.func,FunctionType))

True

或者用下面的方法验证

In [21]: type(obj.func)

Out[21]: method

In [22]: type(Foo.func)

Out[22]: function

上面的例子很清晰的反映了函数与方法的区别与联系。

补充一个概念,方便自己温故。

关键字

关键字是python内置的,具有特殊意义的标识符,自定义标识符命名时不可与之重复。可通过以下代码查看python内置的关键字内容

import keyword

In [16]: print(keyword.kwlist)

['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except',

'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return',

'try', 'while', 'with', 'yield']

PS:

验证函数和方法举例的时候,我使用类调用内置方法(这里把类作为函数的对象,所以我称它为内置方法),当未提供参数时,出现如下报错:

In [10]: Foo.func()

---------------------------------------------------------------------------

TypeError Traceback (most recent call last)

in ()

----> 1 Foo.func()

TypeError: func() missing 1 required positional argument: 'self'

这里可引出“静态方法”、“类方法”的概念,我在下一博文中总结了自己的理解。

python函数和方法概念_python基础学习——函数和方法的区别与联系相关推荐

  1. 在python中用递归的方法编程_python基础之函数,递归,内置函数

    阅读目录 一 数学定义的函数与python中的函数 初中数学函数定义:一般的,在一个变化过程中,如果有两个变量x和y,并且对于x的每一个确定的值,y都有唯一确定的值与其对应,那么我们就把x称为自变量, ...

  2. python中函数的定义实例_Python基础之函数的定义与使用实例

    此文实例介绍了Python基础之函数的定义与使用.推荐给大伙学习一下,内容如下: Python 定义函数使用 def 关键字,一般格式如下: def 函数名(参数列表): 函数体 让我们使用函数来输出 ...

  3. python基础函数及用法意思_Python基础之函数基本用法与进阶详解

    本文实例讲述了Python基础之函数基本用法与进阶.分享给大家供大家参考,具体如下: 目标 函数参数和返回值的作用 函数的返回值 进阶 函数的参数 进阶 递归函数 01. 函数参数和返回值的作用 函数 ...

  4. python入门之函数结构函数的参数_Python 基础之函数初识与函数参数

    一.函数初识 定义:满足某一个方法 满足某一个功能#(1)功能(包裹一部分代码 实现某一个功能 达成某一个目的)#(2)可以反复调用,提高代码的复用性,提高开发效率,便于维护管理#(3)函数的基本格式 ...

  5. python保存数据型变量_Python基础学习笔记(一)变量与数据类型

    https://m.toutiao.com/is/J3fN6eK/ Python是一门易学的面向对象的程序设计语言,可以轻易地完成界面.文件.封装等高阶需求,可移植性好,有非常多功能强大的库与包,如N ...

  6. python函数定义的要点_python基础之函数重点

    函数的返回值 现在有一个需求,比较两个人的月薪,然后想获取月薪较大人的年薪. 如果需要在程序中拿到函数的处理结果做进一步的处理,则需要函数必须要有返回值. 需要注意的是: return是一个函数结束的 ...

  7. python中面向对象空间时间_python基础学习Day15 面向对象、类名称空间、对象名称空间 (2)...

    一.类 先看一段代码: classPerson: animal= '高级动物'walk_way= '直立行走' # 静态属性,静态变量,静态字段language= '语言' def __init__( ...

  8. Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python

    Python学习教程(Python学习路线_Python基础学习教程_Python视频教程):初学者新手怎样快速入门Python? 人生苦短,我用Python!!!短短几个字,现在在各大学习类平台随处 ...

  9. python如何设计工具类_Python基础之自定义工具类

    class ListHelper: @staticmethod def find_all(target, func_condition): """ 查找列表中满足条件的所 ...

最新文章

  1. asp.net 在 Ngnix 服务器 中配置攻略
  2. 微信聊天和朋友圈可以拍摄和分享大视频?
  3. 云+X案例展 | 民生类:肯耐珂萨入围腾讯SaaS加速器首期成员名单
  4. 架构的坑系列:重构过程中的过度设计
  5. Html5新增表单属性
  6. VS Code 的 Java 七月更新,新的重构特性
  7. 云管理之虚拟化——虚拟化的分类
  8. 【图像修复】基于matlab GUI约束最小二乘方滤波图像复原【含Matlab源码 852期】
  9. easyboot的一个严重不足
  10. Python CGI编程实现网页上传本地文件
  11. java判断移动端和pc端_Java判断PC端还是移动端
  12. 关于应用程序无法正常启动0xc000007b的解决方案
  13. 电脑电量为0,显示已接通,却充不上电
  14. 查找附近的xxx 球面距离以及Geohash方案探讨
  15. 解密Airbnb 自助BI神器:Superset
  16. Photoshop 导入堆栈出错: 载入图层 无法合并智能对象文档。将跳过这些文档
  17. 3Com发展史(摘录)
  18. 同程艺龙半年报的喜色,掩盖了旅游竞争的本色
  19. Visual Studio滚动条设置
  20. 白嫖党必备非常好用的苹果cms模板网站

热门文章

  1. Accept-Encoding
  2. 使用Iterator 或for-each注意:java.util.ConcurrentModificationException
  3. Docker 安装zookeeper
  4. 你可能不知道的Spring Boot那点事
  5. Khronos EGL and Apple EAGL
  6. js路由在php上面使用,director.js实现前端路由使用实例
  7. ZZULIOJ 1124: 两个有序数组合并
  8. ZZULIOJ 1060:逆序数字
  9. ZZULIOJ 1058: 求解不等式
  10. android+场景切换,Android共享元素场景切换动画的实现