码迷,mamicode.com
首页 > 编程语言 > 详细

python_函数作用域

时间:2019-09-07 13:30:53      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:修改   打印   文件   可变   app   数据   查找   无法   lob   

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)

     

python_函数作用域

标签:修改   打印   文件   可变   app   数据   查找   无法   lob   

原文地址:https://www.cnblogs.com/wangdianchao/p/11479811.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!