# 这个例子说明如果函数中没有直接定义某变量,则他会向父级寻找,优先级:自己-父级-爷爷级···name = "niu"def guess(): print(">>NO.1", name)guess() # 输出"niu" # 嵌套函数(函数当中包含函数)name2 = "shi"def guess2(): name2 = "chong" print(">>NO.2.1", name2) def guess3(): name2 = "牛" print(">>NO.2.2", name2) guess3() # 调用guess2()时,不会直接触发guess3(),在一级一级往下执行时,末尾加上触发二级函数的语句,才会执行 guess2() # 执行输出 chong 和 牛 ,进一步验证guess()的结论 # 嵌套函数拓展name3 = "shi"def guess3(): print(">>NO.3.1", name3) def guess4(): name3 = "牛" print(">>NO.3.2", name3) name3 = "chong" guess4() guess3() # 会报错,因为执行"print(">>NO.3.1", name3)" name3的寻找模棱两可 # 嵌套函数拓展2name4 = "shi"def guess4(): global name4 name4 = "屎" print(">>NO.4.1", name4) def guess5(): print(">>NO.4.2", name4) guess5() guess4()print(name4) # 利用global函数,将局部变量的name4变量变成全局变量 不建议使用
原文地址:https://www.cnblogs.com/niushichong/p/10037057.html
时间: 2024-10-28 19:16:43