好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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)

到此这篇关于python函数常见关键字分享的文章就介绍到这了,更多相关python函数关键字内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!

查看更多关于python函数常见关键字分享的详细内容...

  阅读:49次