[知识总结]函数变量的声明与调用(Python)

本文介绍了Python中函数变量的声明与调用规则,重点讲解了Python解释器如何按照命名空间的顺序查找变量。通过示例代码说明了即使变量定义在函数之后,只要在调用前声明,函数执行时仍能找到变量,从而避免NameError。
摘要由CSDN通过智能技术生成

学过python命名空间的都应该知道,当一个函数在执行时需要调用某个变量的时候,他会按照一定的顺序查找这个变量,如果找到就调用,找不到就报错NameError(一般情况下会报错提示你这个变量未被定义)。

一般的查找顺序是:(暂不讨论闭包等特殊情况)

函数内部临时变量→父函数临时变量(存在嵌套函数的情况)→模块内部变量(一般叫全局变量)→python内置变量

下面我们来看一些例子:

a = 1
def test():
      a = 2
      def inner():
            a = 3
            print(a)
      inner()  
test() #结果为3
a = 1
def test():
      a = 2
      def inner():
            #a = 3
            print(a)
      inner()  
test() #结果为2
a = 1
def test():
      #a = 2
      def inner():
            #a = 3
            print(a)
      inner()  
test() #结果为1

上面三段代码我想大部分人都能够理解,现在我们将代码改成下面的样子:

a = 1
def test():
      a = 2
      def inner():
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值