zoukankan      html  css  js  c++  java
  • python 变量作用域

    变量作用域

    • 块级作用域

      • python中变量没有块级作用域,下面代码能够正常运行

      if True:
         name = 'xiaoming'

      print(name)
    • 局部作用域

      • 局部变量:定义在函数内部的变量叫局部变量,只能在函数内部使用


      def test():
         a = 10

      test()
      # 此处会报错
      # print(a)
    • 全局作用域

      • 全局变量:定义在函数外部的变量叫全局变量,哪里都可以使用(但是不能修改)


      num = 20

      def show():
         # 加上这句代码,就可以在函数内部修改全局变量
         global num
         num = 30
         print(num)

    show() print(num)



    > 当函数内部与外部有同名变量时,优先使用内部的

    说明:

    1. 全部变量在函数内部只能使用不能修改
    2. 若要在函数内部修改全局变量,通过global关键字声明

    - nonlocal

    - 内部函数使用外部函数的局部变量时使用

    ```python
    def wai():
        age = 20
        def nei():
            # 使用外层函数的局部变量
            nonlocal age
            age = 30
            print(age)
        nei()
        print(age)

    wai()

    加上nonlocal就可以在内部函数中修改外部函数的局部变量了

  • 相关阅读:
    fork安全的gettid高效实现
    TCP_DEFER_ACCEPT的坑
    TCP Linger的坑
    Blade和其他构建工具有什么不同
    在Blade中结合gperftools检查内存泄露
    GraphViz web版
    用户场景分析
    java-二维数组——with 刘童格
    java-四则运算-五-网页版--with刘童格
    java-四则运算-四
  • 原文地址:https://www.cnblogs.com/kiki5881/p/8550055.html
Copyright © 2011-2022 走看看