Python函数定义与变量作用域详解

Mia
Mia
发布时间:2026-10-14 | 4人浏览过
原创

本文详细介绍Python中函数的定义与调用方法,包括无参函数和有参函数的实现。重点解析Python中变量的三种作用域:全局(global)、局部(local)和非本地(nonlocal),并通过具体代码示例演示global和nonlocal关键字的使用及其对变量影响范围的区别,帮助开发者掌握变量作用域的核心概念。

Python函数定义基础

首先,我们来定义一个基础的函数。


复制代码

具体代码实现如下:


def foo():


print('function')


foo()



上述代码定义了一个名为foo的函数,该函数不接受任何参数。最后一行代码用于调用此函数,这是函数最简单的形式。接下来,我们将介绍带有参数的函数定义方式。


复制代码

代码如下:


def foo():


print('function')


def foo1(a,b):


print(a+b)


foo()


foo1(1,2)



函数foo1是一个带有参数的函数,通过调用foo1(1,2)即可执行该有参函数。



Python变量作用域解析

在程序运行过程中,只要存在变量,就会涉及变量的作用域问题。Python将变量的作用域划分为三个层级:global(全局)、local(局部)和nonlocal(非本地)。



global:顾名思义,指全局变量。这类变量处于Python代码的最高层次,即定义层级最高,并非定义在函数或类内部。


local:指局部变量,这类变量定义在函数内部。


nonlocal:这是一个相对概念。在Python中,函数内部可以嵌套定义内部函数,此时,外部函数中的变量相对于内部嵌套函数而言,即为nonlocal变量。


下面通过程序示例进行说明,首先观察全局变量与局部变量的交互:


复制代码

代码如下:


x = 1


y = 2


def foo(x):


print(x)


print(y)


print('***********')


x = 3


global y


y = 3


print(x)


print(y)


print('***********')


foo(x)


print(x)


print(y)



#************************

#运行结果


1


2


***********

3


3


***********

1


3



在上述程序中,定义了两个全局变量x和y。在函数foo内部,也定义了一个名为x的局部变量。根据运行结果可知,在foo内部,变量x表现为真正的局部变量,因为其修改并未影响全局变量x。此外,若要在foo内部使用并修改全局变量,必须使用global关键字。语句global y旨在声明变量y为外部已定义的全局变量y。因此,在foo内部对y进行修改后,在foo外部依然能观察到该影响,因为foo修改的是全局变量。


nonlocal关键字应用

接下来,我们来看nonlocal的使用示例:


复制代码

代码如下:


def out():


z = 3


def inner():


nonlocal z


z = 4


print('inner function and z = {0}'.format(z))


inner()


print('out function and z = {0}'.format(z))


out()


#**********

#运行结果


inner function and z = 4


out function and z = 4



1

2下一页阅读全文

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表