• python_函数作用域


    py文件:全局作用域

    函数:局部作用域

    • 一个函数是一个作用域
    • def func():
          x = 9
          print(x)
      func()
      print(x)
    • 作用域中查找数据规则:优先在自己的作用域找数据,自己没有就去“父级”->“父级”->直到全局,全局没有就报错。
    • x = 10
      def func():
          x = 9
          print(x)
      func()

      x = 10
      def func():
      # x = 9
      print(x)
      def x1():
      # x = 888
      print(x)

      x1()
      func()
      
      
    • 子作用域中只能找到父级中的值,默认无法重新为父级的变量进行重新赋值(global.nonlocal可以强制做)。
    • name = 'wdc'
      def func():
          # 这里name是函数中的一个新的变量,和全局作用域中的name没有任何关系。
          name = 'yhf'
          print(name)
      func()
      # 这个打印的name还是为'wdc'
      print(name)

      name = [11,22,33]
      def func():
      # 列表为可变类型,用APPEND()方法可以修改列表中的内容
      name.append('wdc')
      print(name)
      func()
      print(name)

      name = 'wdc'
      def func():
      # 如果说非要更改全局作用域中的变量可以先用GLOBAL强制修改,可以重新赋值
      # 只能改全局变量
      global name
      name = 'yhf'
      print(name)
      func()
      print(name)

      name = 'wdc'
      def func():
      name = 'yhf'
      def func1():
      def func2():
      # nonlocal 找到上一级变量修改
      nonlocal name
      name = 888
      func2()
      func1()
      print(name)
      func()
      print(name)
  • 相关阅读:
    2021/6/28
    2021/6/25
    IDEA快捷键
    maven的一些问题
    Maven安装
    2021/6/14
    nmcli 网络管理工具
    linux yum仓库配置
    linux 防火墙selinux ,firewalld, iptables
    linux root密码重置
  • 原文地址:https://www.cnblogs.com/wangdianchao/p/11479811.html
Copyright © 2020-2023  润新知