函数的命名空间
# 函數進階
# a = 1
# def func():
# print(a)
# func()# 命名空間和作用域
# print()
# input()
# list
# tuple#命名空間 有三種
#內置命名空間 —— python解釋器# 就是python解釋器一啟動就可以使用的名字存儲在內置命名空間中# 內置的名字在啟動解釋器的時候被加載進內存里
#全局命名空間 —— 我們寫的代碼但不是函數中的代碼# 是在程序從上到下被執行的過程中依次加載進內存的# 放置了我們設置的所有變量名和函數名
#局部命名空間 —— 函數# 就是函數內部定義的名字# 當調用函數的時候 才會產生這個名稱空間 隨著函數執行的結束 這個命名空間就又消失了#在局部:可以使用全局、內置命名空間中的名字
#在全局:可以使用內置命名空間中的名字,但是不能用局部中使用
#在內置:不能使用局部和全局的名字的# def func():
# a = 1
#
# func()
# print(a)# def max(l):
# print('in max func')
#
# print(max([1,2,3]))
#在正常情況下,直接使用內置的名字
#當我們在全局定義了和內置名字空間中同名的名字時,會使用全局的名字
#當我自己有的時候 我就不找我的上級要了
#如果自己沒有 就找上一級要 上一級沒有再找上一級 如果內置的名字空間都沒有 就報錯
# 多個函數應該擁有多個獨立的局部名字空間,不互相共享# def input():
# print('in input now')
# def func():
# # input = 1
# print(input)
# func()
# def fun1():
# a = 1
#
# def fun2():pass#func --> 函數的內存地址
#函數名() 函數的調用
#函數的內存地址() 函數的調用# 作用域兩種
# 全局作用域 —— 作用在全局 —— 內置和全局名字空間中的名字都屬于全局作用域 ——globals()
# 局部作用域 —— 作用在局部 —— 函數(局部名字空間中的名字屬于局部作用域) ——locals()# a = 1
# def func():
# global a
# a = 2
#
# func()
# print(a)# 對于不可變數據類型 在局部可是查看全局作用域中的變量
# 但是不能直接修改
# 如果想要修改,需要在程序的一開始添加global聲明
# 如果在一個局部(函數)內聲明了一個global變量,那么這個變量在局部的所有操作將對全局的變量有效
# a = 1
# b = 2
# def func():
# x = 'aaa'
# y = 'bbb'
# print(locals())
# print(globals())
#
# func()
# print(globals())
# print(locals()) #本地的#globals 永遠打印全局的名字
#locals 輸出什么 根據locals所在的位置# a = 1
# def func(a):
# a = 2
# return a
#
# a = func(a)
# print(a)
?
轉載于:https://www.cnblogs.com/hopelv/p/10089220.html
總結
- 上一篇: iPhone 12 mini辐射很大吗对
- 下一篇: 后羿铭文怎么搭配最强(王者后羿最强铭文搭