189 8069 5689

python作用域怎么用

小编给大家分享一下python作用域怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

创新互联-专业网站定制、快速模板网站建设、高性价比坊子网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式坊子网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖坊子地区。费用合理售后完善,10年实体公司更值得信赖。

作用域

变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:

  • L (Local) 局部作用域

  • E (Enclosing) 闭包函数外的函数中

  • G (Global) 全局作用域

  • B (Built-in) 内建作用域

以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

x = int(2.9)  # 内建作用域
 
g_count = 0  # 全局作用域
def outer():
    o_count = 1  # 闭包函数外的函数中
    def inner():
        i_count = 2  # 局部作用域

Python 中只有模块(module),类(class)以及函数(def、lambda)才会引入新的作用域,其它的代码块(如 if/elif/else/、try/except、for/while等)是不会引入新的作用域的,也就是说这这些语句内定义的变量,外部也可以访问

  • 全局变量和局部变量

    • 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域。

    • 局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。调用函数时,所有在函数内声明的变量名称都将被加入到作用域中。

  • global 和 nonlocal关键字

    当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了。

    • global

      num = 1
      def fun1():
          global num  # 需要使用 global 关键字声明
          print(num)
          num = 123
          print(num)
      fun1()
       
      以上实例输出结果:
      1
      123
    • nonlocal

      如果要修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量则需要 nonlocal 关键字了。

      def outer():
          num = 10
          def inner():
              nonlocal num  # nonlocal关键字声明
              num = 100
              print(num)
          inner()
          print(num)
      outer()
       
      以上实例输出结果:
      100
      100

以上是“python作用域怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


分享文章:python作用域怎么用
本文来源:http://cdxtjz.cn/article/gehhss.html

其他资讯