第17章 作用域

  1. 下面的代码会输出什么?
x = 'Spam'
def func():
    print(x)
>>>func()
'Spam'

x是的全局变量

  1. 下面的代码会输出什么?
x = 'Spam'
def func()"
    x = 'Ni!'
>>>func()
>>>print(x)
'Spam'

def内部的本地变量不影响全局变量

  1. 下面的代码会打印什么内容?
x = 'Spam'
def func():
    x = 'Ni'
>>>func()
'Ni'
>>>print(x)
'Spam'

func()中的x是本地变量只在函数内起作用

  1. 下面的代码会输出什么?
x = 'Spam'
def func():
    global x
    x = 'NI!'
>>>func()
>>>print(x)
'NI!'

global将def内的本地变量变为全局变量

  1. 下面的代码会输出什么?
x = 'Spam'
def func()
    x = 'NI!'
   def nested():
       print(x)
  nested()
>>>func()
'NI!'
>>>x
'Spam'

嵌套函数查找最近的变量然后停止

  1. 这段代码会输出什么?
def func():
    x = 'NI!'
   def nested():
       nonlocal x
       x = 'Spam'
   nested()
   print(x)
>>>func()
'Spam'

nonlocal影响了x,可以修改本地作用域的x值

  1. 举出3-4种Python函数中保存状态信息的方法
    全局变量,nonlocal,默认参数,类,函数属性等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容