'''
加薪骗局(变量的作用域)
·封装一个加薪函数
·以参数接收加薪前的薪水
·在加薪函数内改变薪水的值
·打印“加薪”后的薪水
'''
'''
函数参数的作用域,仅限于函数内部【局部变量】作用域仅限于函数内部
形参接收的不是实参变量的引用,而是其值的拷贝
'''
# 加薪以前的薪水
salary = 2000 # 全局变量
def raiseSalary(salary):
salary *= 10
print("领导:马上给你加薪到%d" % (salary))
# 执行加薪函数,实参为2000
# 实参salary到函数内部变成了拷贝,是一个局部变量,
# 函数结束以后消失于无形,对实参不产生任何实际影响
raiseSalary(salary)
print("加薪后:薪水是%d" % (salary))
# 通过返回值形式将加薪后的结果传递给调用者
def raiseSalaryII(salary): # 参数定义为形参
salary *= 10
return salary
# 函数的返回值重新赋值给上面的salary变量,salary变量的值改变了!
salary = raiseSalaryII(salary)
print("加薪后:salary = %d" % (salary))
def raiseSalaryIII():
# 声明当前salary为外界的全部变量salary
global salary
salary *= 10
raiseSalaryIII()
print("加薪后:salary = %d" % (salary))