'''
加薪骗局(变量的作用域)
·封装一个加薪函数
·以参数接收加薪前的薪水
·在加薪函数内改变薪水的值
·打印“加薪”后的薪水
'''

'''
函数参数的作用域,仅限于函数内部【局部变量】作用域仅限于函数内部

形参接收的不是实参变量的引用,而是其值的拷贝
'''
# 加薪以前的薪水
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))

results matching ""

    No results matching ""