python_函数作用域
Posted 手可摘星辰。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python_函数作用域相关的知识,希望对你有一定的参考价值。
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_函数作用域的主要内容,如果未能解决你的问题,请参考以下文章