基于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 相关文章推荐
Django中传递参数到URLconf的视图函数中的方法
Jul 18 Python
wxPython的安装图文教程(Windows)
Dec 28 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
python中的单引号双引号区别知识点总结
Jun 23 Python
python实现接口并发测试脚本
Jun 25 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
Jul 23 Python
Python队列、进程间通信、线程案例
Oct 25 Python
python安装gdal的两种方法
Oct 29 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
python程序输出无内容的解决方式
Apr 09 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
Apr 09 Python
Pycharm编辑器功能之代码折叠效果的实现代码
Oct 15 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
WordPress中给媒体文件添加分类和标签的PHP功能实现
2015/12/31 PHP
PHP实现微信商户支付企业付款到零钱功能
2018/09/30 PHP
PHP7.3.10编译安装教程
2019/10/08 PHP
javascript中用星号表示预录入内容的实现代码
2011/01/08 Javascript
javascript五图轮播切换实用版
2012/08/17 Javascript
JavaScript实现的字符串replaceAll函数代码分享
2015/04/02 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
jquery实现清新实用的网页菜单效果
2015/08/28 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
利用Plupload.js解决大文件上传问题, 带进度条和背景遮罩层
2017/03/15 Javascript
JavaScript之class继承_动力节点Java学院整理
2017/07/03 Javascript
Vue.js项目部署到服务器的详细步骤
2017/07/17 Javascript
AngularJS中的路由使用及实现代码
2017/10/09 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
vue中使用vue-pdf的方法详解
2020/09/05 Javascript
解决vue项目运行npm run serve报错的问题
2020/10/26 Javascript
小结Python用fork来创建子进程注意事项
2014/07/03 Python
Python判断操作系统类型代码分享
2014/11/22 Python
python制作微博图片爬取工具
2021/01/16 Python
python程序实现BTC(比特币)挖矿的完整代码
2021/01/20 Python
世界上最大的各式箱包网络零售店:eBag
2016/07/21 全球购物
COSETTE官网:奢华,每天
2020/03/22 全球购物
总经理助理岗位职责
2013/11/08 职场文书
最新创业融资计划书
2014/01/19 职场文书
工艺员岗位职责
2014/02/11 职场文书
公司营业员的自我评价
2014/03/04 职场文书
经济担保书范文
2014/04/02 职场文书
竞聘自述材料
2014/08/25 职场文书
公路局群众路线教育实践活动第一阶段工作汇报
2014/10/25 职场文书
乡镇科协工作总结2015
2015/05/19 职场文书
教师理论学习心得体会
2016/01/21 职场文书
Java 在线考试云平台的实现
2021/11/23 Java/Android