python函数定义和调用过程详解


Posted in Python onFebruary 09, 2020

这篇文章主要介绍了python函数定义和调用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

我们可以创建一个函数来列出费氏数列

>>> def fib(n):  # write Fibonacci series up to n
...   """Print a Fibonacci series up to n."""
...   a, b = 0, 1
...   while a < n:
...     print(a, end=' ')
...     a, b = b, a+b
...   print()
...
>>> # Now call the function we just defined:
... fib(2000)
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597

函数的调用会为函数局部变量生产一个新的符号表。确切说,所有函数中的变量赋值都是将值存储在局部符号表。变量引用首先在局部符号表中查找,然后是包含函数的局部符号表,然后是全局符号表,最后是内置名字表。因此,局部变量不能在函数中直接赋值(除非用global),尽管他们可以被引用。

函数引用的实参在函数被调用的时候引入局部符号表,因此实参总是传值调用(该值通常指的是对象的引用,而不是该对象的值),一个函数被另一个函数调用的时候,一个新的局部符号表在调用过程中被创建。python的函数是以传址的方式工作,当调用一个函数的时候,改变指针指向。

一个函数定义的时候会讲函数名引入当前子都表。函数名指代的值会被解析器当作用户定义函数的类型。这个值可以赋予其他的名字,然后其他的名字也可以被当作函数使用,这可以作为通用的重命名机制:

>>> fib
<function fib at 10042ed0>
>>> f = fib
>>> f(100)
0 1 1 2 3 5 8 13 21 34 55 89

你可能觉得fib不是一个函数而是一个方法,因为他没有返回值,实际上,没有带return的函数也返回了一个值,就是none(内建名称),如果你想看到这个值,可以打印出来:

>>> fib(0)
>>> print(fib(0))
None

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 第一步 hello world
Sep 25 Python
python中子类调用父类函数的方法示例
Aug 18 Python
Python爬取数据并写入MySQL数据库的实例
Jun 21 Python
python程序控制NAO机器人行走
Apr 29 Python
django2笔记之路由path语法的实现
Jul 17 Python
基于python判断目录或者文件代码实例
Nov 29 Python
使用python动态生成波形曲线的实现
Dec 04 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
python pycharm最新版本激活码(永久有效)附python安装教程
Sep 18 Python
关于tf.matmul() 和tf.multiply() 的区别说明
Jun 18 Python
Python延迟绑定问题原理及解决方案
Aug 04 Python
python利用opencv实现颜色检测
Feb 23 Python
详解python 破解网站反爬虫的两种简单方法
Feb 09 #Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 #Python
Python文件操作方法详解
Feb 09 #Python
Python列表操作方法详解
Feb 09 #Python
Python2与Python3的区别详解
Feb 09 #Python
python默认参数调用方法解析
Feb 09 #Python
Python集合操作方法详解
Feb 09 #Python
You might like
PL-880隐藏功能
2021/03/01 无线电
1.PHP简介
2006/10/09 PHP
php操作excel文件 基于phpexcel
2010/07/02 PHP
常见PHP数据库解决方案分析介绍
2015/09/24 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
php使用变量动态创建类的对象用法示例
2017/02/06 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
javascript知识点收藏
2007/02/22 Javascript
JavaScript While 循环基础教程
2007/04/05 Javascript
dreamweaver 8实现Jquery自动提示
2014/12/04 Javascript
js实现input框文字动态变换显示效果
2015/08/19 Javascript
以BootStrap Tab为例写一个前端组件
2017/07/25 Javascript
three.js实现3D影院的原理的代码分析
2017/12/18 Javascript
JavaScript实现异步图像上传功能
2018/07/12 Javascript
JavaScript箭头函数中的this详解
2019/06/19 Javascript
nodejs二进制与Buffer的介绍与使用
2019/07/11 NodeJs
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python函数的定义方式与函数参数问题实例分析
2019/12/26 Python
解决python ThreadPoolExecutor 线程池中的异常捕获问题
2020/04/08 Python
Django实现文章详情页面跳转代码实例
2020/09/16 Python
Python项目打包成二进制的方法
2020/12/30 Python
推荐10个CSS3 制作的创意下拉菜单效果
2014/02/11 HTML / CSS
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
C#笔试题集合
2013/06/21 面试题
主办会计岗位职责
2014/03/13 职场文书
生日主持词
2014/03/20 职场文书
2014年师德承诺书
2014/05/23 职场文书
语文教研活动总结
2014/07/02 职场文书
怎么写工作检讨书
2014/11/16 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
三十年同学聚会感言
2015/07/30 职场文书
《平行四边形的面积》教学反思
2016/02/16 职场文书
Python实现socket库网络通信套接字
2021/06/04 Python
SpringBoot中获取profile的方法详解
2022/04/08 Java/Android
Win11开始菜单添加休眠选项
2022/04/19 数码科技