ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

global、nonlocal

2021-06-03 13:32:39  阅读:163  来源: 互联网

标签:func1 函数 作用域 age global nonlocal print def


高阶函数

  • 内置函数

    • globals()全局的,返回的是字典:字典里面的键值:全局作用域所有的内容
    • locals()局部的,返回的是字典:字典里面的键值:局部作用域所有的内容

***global

  • 在局部作用域声明一个全局变量
count=20
def xiaoxiannv():
    global count
    count+=1
xiaoxiannv()
print(count)

nonlocal

  • 不能操作全局变量
  • 只能在局部作用域内:内层函数对外层函数的局部变量进行修改
age=12
def xiaoxiannv():
    age = 20
    def wangmingming():
        nonlocal age
        age+=1
    wangmingming()
    print(age)
xiaoxiannv()

函数名的应用

  1. 函数名指向的是函数的内存地址。函数名+()就可以指向函数
  2. 函数名就是变量
def func1():
    print('func1')

s=func1
d=s
q=d
q()

3.函数名可以作为容器类数据类型的元素

def func1():
    print('func1')

def func2():
    print('func2')

def func3():
    print('func3')

li=[func1,func2,func3]
for i in li:
    i()
得:
func1
func2
func3

4.函数名可以作为函数的参数

def a():
    print('hello')

def b(n):
     a()     
q=b(a)

得:
hello

5.函数名可以作为函数的返回值

def a():
    print('hello')

def b(n):
     return n         #return将n返回给函数的调用者q
q=b(a)
q()      #函数把n(函数的内存地址)返回给q后,q+()执行函数

得:hello

标签:func1,函数,作用域,age,global,nonlocal,print,def
来源: https://www.cnblogs.com/xiaoxiannvdbky/p/14844793.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有