第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,默认参数,类,函数属性等

你可能感兴趣的:(第17章 作用域)