基于Python函数和变量名解析


Posted in Python onJuly 19, 2019

1、Python函数

函数是Python为了代码最大程度的重用和最小化代码冗余而提供的基本程序结构,用于将相关功能打包并参数化

Python中可以创建4种函数:

1)、全局函数:定义在模块中,每个模块都是一个全局作用域,因此,全局作用域的范围仅限于单个程序文

2)、局部函数:嵌套在其它函数中

3)、lambda函数:表达式

4)、方法:与特定数据类型关联的函数表,并且只能与数据类型关联一起使用

Python提供众多内置函数

Python创建、改变、查找变量名都是在名称空间中进行,在代码中变量名被复制的位置决定了其能被访问到的范围

Python函数执行环境

如图,函数可以通过多种方法获得输入以及产生输出:

基于Python函数和变量名解析

创建函数,语法格式:

def funcName(arg1,arg2, ...):

suite

语法说明:

1)、def是一个可执行语句,可以出现在任何能够使用语句的地方,甚至可以嵌套在其它语句中,例如if或while语句。

2)、def创建一个对象并将其赋值给一个变量名(即函数名)

3)、return用于返回结果对象,为可选参数,无return语句时函数自动返回none对象。返回对个值时,使用逗号隔开,并组合称一个元组对象返回

4)、def语句运行之后,可以在程序中使用函数后附加括号进行调用,每次对函数的调用都会创建一个新的本地作用域,赋值的变量除非声明为全局变量,否则均为本地变量

5)、所有的变量名都可以归纳为本地、全局或内置的(由__builtin__模块提供)

python函数用法示例

例1:交互式模式下创建并调用函数

In [1]: def printname():

 ...:   raw_input('Please Inputyour name:')

 ...:  

In [2]: printname()

Please Input your name:Fieldyang

例2:编辑test.py,测试全局变量和函数内本地变量

[root@test 0527]# vim test.py

#!/usr/bin/python27

x = 27

def f1():

  x= 52

  print x

f1()

print x

[root@test 0527]# chmod +x test.py

[root@test 0527]# ./test.py

52 #调用函数产生的输出,函数内变量

27 #print产生的输出,本地变量

例3:编辑test.py,测试全局变量和函数内变量的作用域

[root@test 0527]# vim test.py

#!/usr/bin/python27

x = 27

def f1():

  y= 52

  print "def y = %d,global x = %d" % (y,x)

f1()

print "global x = %s." %x

print y

[root@test 0527]# ./test.py

def y = 52,global x = 27

global x = 27.

Traceback (most recent call last):

 File "./test.py", line 9, in <module>

  print y

NameError: name 'y' is not defined

#函数内部可以使用全局变量,局部同名变量不影响全局变量,并且全局变量无定义时无法自行使用函数内同名变量。

#函数内部赋值的变量可以使用global声明为全局变量,则全局中均会调用该变量值。

例4:编辑test.py,定义全局变量

[root@test 0527]# vim test.py

#!/usr/bin/python27

x = 27

y = 66

#本地变量,函数内部声明“global y”后该参数不会被调用

def f1():

  global y

  y= 52

  print "global y = %d,global x = %d" % (y,x)

f1()

print "global x = %s." %x

print "global y = %s." %y

[root@test 0527]# ./test.py

global y = 52,global x = 27

global x = 27.

global y = 52.

2、变量名解析

1)、LEGB原则:

Local-->Enclosing functionlocals-->Global-->Built-in

变量名引用分三个作用域进行

首先是本地、之后是函数内、接着是全局、最后是内置,作用域越小,优先级越高

2)、变量名解析示例

例1:函数嵌套的使用

[root@test 0527]# vim test2.py

#!/usr/bin/python27

#

z = "From global :"

m = 666

def f1():

  x= "From function f1 :"

  y= 222

  print "%s y = %d" % (x,y)

  print "%s m = %d" % (z,m)

  def f2():

    x = "From function f2 :"

    print "%s y = %d" % (x,y)

  f2()

f1()

print "%s m = %d" % (z,m)

[root@test 0527]# chmod +x test2.py

[root@test 0527]# ./test2.py

From function f1 : y = 222

From global : m = 666

From function f2 : y = 222

From global : m = 666

以上这篇基于Python函数和变量名解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
零基础写python爬虫之打包生成exe文件
Nov 06 Python
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
Python制作简易注册登录系统
Dec 15 Python
使用Python 统计高频字数的方法
Jan 31 Python
python 实现绘制整齐的表格
Nov 18 Python
TensorFlow学习之分布式的TensorFlow运行环境
Feb 05 Python
Python如何把多个PDF文件合并代码实例
Feb 13 Python
python为QT程序添加图标的方法详解
Mar 09 Python
Pycharm激活码激活两种快速方式(附最新激活码和插件)
Mar 12 Python
使用Django xadmin 实现修改时间选择器为不可输入状态
Mar 30 Python
基于TensorFlow的CNN实现Mnist手写数字识别
Jun 17 Python
python tqdm库的使用
Nov 30 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 #Python
对Python生成器、装饰器、递归的使用详解
Jul 19 #Python
django中SMTP发送邮件配置详解
Jul 19 #Python
对Python函数设计规范详解
Jul 19 #Python
在django view中给form传入参数的例子
Jul 19 #Python
使用Python制作表情包实现换脸功能
Jul 19 #Python
解决Django一个表单对应多个按钮的问题
Jul 18 #Python
You might like
php下判断数组中是否存在相同的值array_unique
2008/03/25 PHP
php 文件上传后缀名与文件类型对照表(几乎涵盖所有文件)
2010/05/16 PHP
Composer设置忽略版本匹配的方法
2016/04/27 PHP
php实现JWT验证的实例教程
2020/11/26 PHP
菜鸟javascript基础整理1
2010/12/06 Javascript
HTML5附件拖拽上传drop &amp; google.gears实现代码
2011/04/28 Javascript
利用json获取字符出现次数的代码
2012/03/22 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
Yii2使用Bootbox插件实现自定义弹窗
2015/04/02 Javascript
jquery实现鼠标经过显示下划线的渐变下拉菜单效果代码
2015/08/24 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
纯js代码制作的网页时钟特效【附实例】
2016/03/30 Javascript
Node.js Addons翻译(C/C++扩展)
2016/06/12 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
Javascript实现信息滚动效果
2017/05/18 Javascript
让bootstrap的carousel支持滑动滚屏的实现代码
2017/11/27 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
javascript头像上传代码实例
2019/09/28 Javascript
bootstrap table实现iview固定列的效果实例代码详解
2019/09/30 Javascript
JS猜数字游戏实例讲解
2020/06/30 Javascript
微信小程序实现文件预览
2020/10/22 Javascript
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
pycharm运行程序时在Python console窗口中运行的方法
2018/12/03 Python
python使用magic模块进行文件类型识别方法
2018/12/08 Python
深入解析python中的实例方法、类方法和静态方法
2019/03/11 Python
pytorch 指定gpu训练与多gpu并行训练示例
2019/12/31 Python
Python WebSocket长连接心跳与短连接的示例
2020/11/24 Python
pycharm进入时每次都是insert模式的解决方式
2021/02/05 Python
HTML5 CSS3新的WEB标准和浏览器支持
2009/07/16 HTML / CSS
荷兰最大的鞋子、服装和运动折扣店:Bristol
2021/01/07 全球购物
升旗仪式演讲稿
2014/05/08 职场文书
文明班集体申报材料
2014/05/23 职场文书
银行授权委托书范本
2014/10/04 职场文书
学习保证书100字
2015/02/26 职场文书
服装区域经理岗位职责
2015/04/10 职场文书