0
点赞
收藏
分享

微信扫一扫

python函数常见关键字

python函数常见关键字

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)
    
#1
# 1
# 2
# 2
# 1
举报

相关推荐

0 条评论