基于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编程过程中用单元测试法调试代码的介绍
Apr 02 Python
快速入手Python字符编码
Aug 03 Python
tensorflow使用神经网络实现mnist分类
Sep 08 Python
python实现控制COM口的示例
Jul 03 Python
opencv python在视屏上截图功能的实现
Mar 05 Python
Python3 filecmp模块测试比较文件原理解析
Mar 23 Python
python交互模式基础知识点学习
Jun 18 Python
Python pandas对excel的操作实现示例
Jul 21 Python
Python计算矩阵的和积的实例详解
Sep 10 Python
Python并发爬虫常用实现方法解析
Nov 19 Python
python 实现一个简单的线性回归案例
Dec 17 Python
Pytest之测试命名规则的使用
Apr 16 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
表格 隔行换色升级版
2009/11/07 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
Jquery搜索父元素操作方法
2015/02/10 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
快速解决Vue项目在IE浏览器中显示空白的问题
2018/09/04 Javascript
JQueryDOM之样式操作
2019/03/27 jQuery
Node.js API详解之 dgram模块用法实例分析
2020/06/05 Javascript
js实现双色球效果
2020/08/02 Javascript
微信小程序实现星星评分效果
2020/11/01 Javascript
Python入门篇之列表和元组
2014/10/17 Python
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python中字典映射类型的学习教程
2015/08/20 Python
解析Python中while true的使用
2015/10/13 Python
Python应用03 使用PyQT制作视频播放器实例
2016/12/07 Python
酷! 程序员用Python带你玩转冲顶大会
2018/01/17 Python
python和pygame实现简单俄罗斯方块游戏
2021/02/19 Python
python石头剪刀布小游戏(三局两胜制)
2021/01/20 Python
python实现飞机大战项目
2020/03/11 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
python 装饰器的使用示例
2020/10/10 Python
优秀企业获奖感言
2014/02/01 职场文书
2014年大学生党课心得体会范文
2014/03/29 职场文书
淘宝好评语大全
2014/05/05 职场文书
会计演讲稿范文
2014/05/23 职场文书
人大调研汇报材料
2014/08/14 职场文书
2014年最新大专生职业生涯规划书范文
2014/09/13 职场文书
匿名检举信范文
2015/03/02 职场文书
大学生团日活动总结
2015/05/06 职场文书
二手房购房意向书
2015/05/09 职场文书
2016七夕情人节寄语
2015/12/04 职场文书
上手简单,功能强大的Python爬虫框架——feapder
2021/04/27 Python
如何使用flask将模型部署为服务
2021/05/13 Python
Java无向树分析 实现最小高度树
2022/04/09 Javascript
NoSQL优缺点与MongoDB数据库简介
2022/06/05 MongoDB