基于Python函数和变量名解析

作者:Field_Yang 时间:2022-10-26 13:49:56 

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

来源:https://blog.csdn.net/Field_Yang/article/details/80587485

标签:Python,函数,变量名
0
投稿

猜你喜欢

  • django admin后管定制-显示字段的实例

    2023-07-01 11:34:18
  • python调用c++ ctype list传数组或者返回数组的方法

    2021-09-28 01:24:04
  • python闭包的实例详解

    2021-03-19 03:25:09
  • 浅谈Pycharm中的Python Console与Terminal

    2021-09-19 07:20:42
  • 仿天涯底部固定漂浮导航,无JS纯CSS定义

    2009-07-06 12:44:00
  • python奇偶行分开存储实现代码

    2022-01-30 09:30:24
  • PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码

    2024-04-30 09:57:47
  • Pandas中DataFrame的常用用法分享

    2022-08-10 01:17:49
  • Python 实现简单的电话本功能

    2021-11-16 09:47:58
  • vue 修改 data 数据问题并实时显示操作

    2024-05-02 17:00:53
  • Pycharm快速安装OpenCV的详细操作步骤

    2021-02-01 09:51:10
  • vue.js表格分页示例

    2024-05-02 16:40:45
  • Python实现语音合成功能详解

    2023-11-28 16:09:17
  • 关于Python正则表达式 findall函数问题详解

    2022-10-24 22:18:43
  • python求加权平均值的实例(附纯python写法)

    2022-12-22 22:12:03
  • Python中性能分析利器pyinstrument详细讲解

    2021-02-15 10:46:51
  • Python实现自动清理电脑垃圾文件详解

    2023-05-18 00:50:22
  • php中session_id()函数详细介绍,会话id生成过程及session id长度

    2023-11-24 08:01:00
  • 解析pandas apply() 函数用法(推荐)

    2022-09-02 15:10:09
  • Pytorch关于Dataset 的数据处理

    2021-04-16 08:40:54
  • asp之家 网络编程 m.aspxhome.com