python函数关键字

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

python函数关键字

荼靡,   2022-06-03 我要评论

1.global关键字

默认情况下,在局部作用域对全局变量只能进行:读取,修改内部元素(可变类型),无法对全局变量进行重新赋值

读取:

CITY=['北京','上海']
def func():
    print(CITY) # ['北京','上海']
func()

修改内部元素(可变类型)

CITY=['北京','上海']
def func():
    CITY.append('安徽')
    print(CITY) # ['北京','上海','安徽']
func()
print(CITY) # ['北京','上海','安徽']

无法对全局变量重新赋值

CITY=['北京','上海']
def func():
    CITY=['安徽']
    print(CITY)  #['安徽']
func()
print(CITY) # ['北京','上海']

如果想在局部作用域对全局变量重新赋值,基于global关键字实现

CITY=['北京','上海']
def func():
    global CITY=['安徽']
    print(CITY)  #['安徽']
func()
print(CITY)  #['安徽']

2.nolocal关键字

将上一级作用域的变量重新赋值

name = 'root'
def outer():
    # name=123
    name = '你好'
    def func():
        # 将又上一级变量name重新赋值为123
        nonlocal name
        # name=123
        name = "wxy"
        def inner():
            #将上一级变量name重新赋值为123
            nonlocal name
            name = 123
        inner()
        print(name)
    func()
    print(name)
outer()
print(name)
# 123
# 123
# root

3.yield from

python3.3引入yield from

在yield函数中调用其它的yield函数

def func():
    yield 2
    yield 2
def func1():
    yield 1
    yield 1
    yield from func()
    yield 1
from i in func1():
    print(1)

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们