【发布时间】:2011-11-21 16:39:34
【问题描述】:
Python 脚本:
def show(name):
def getName():
return _name
def setName(value):
_name = value
_name = ''
print('Input parameter: ', name)
print('Global variable: ', say_hello)
print('Change private variable: ', setName(name))
print('Get private variable: ', getName())
print('Private variable: ', _name)
print('Input parameter: ', name)
say_hello = 'hello'
show('Jim')
输出:
Input parameter: Jim
Global variable: hello Change
private variable: None
Get private variable:
Private variable:
Input parameter: Jim
为什么内部函数不改变_name的值,而函数show却可以得到say_hello的值?我知道这是一个变量范围问题,但我想知道一些细节。
【问题讨论】:
-
我的 python 版本是 Python 3.2 (r32:88445, Feb 21 2011, 11:29:37)。
-
感谢您帮助我解释我的问题!谢谢大家! :^)