函式物件和命名空間

2022-06-09 06:09:12 字數 1233 閱讀 9595

函式

函式時第一類物件

1.函式名可以被引用

2.函式名可當作引數去使用

3.函式名可以當作返回值使用

傳參時,如果無特殊需求,一定不能加(),否則就當場執行

def index():

print(『from index』)

def func(a):

return a

a=func(index) a() 

執行結果:

from index

4.函式名可以被當作容器型別的元素

def

func():

print('

from func')

l1 = [1, '2'

, func, func()]

f = l1[2]

print

(f)from

func

5.函式的巢狀呼叫

6.函式的巢狀定義

命名空間

存放名字的空間

分類:要拿到乙個變數值,先進入命名空間,拿到變數名,得到與他繫結的關係

1.內建命名空間

python提前給的定義完的名字,存在於內建空間

2.全域性命名空間

存放於檔案級別的名稱就是全域性命名空間

if,while,for內部定義的名字執行後,都存放於全域性命名空間

3.區域性命名空間

def index():

a =1

print(a)

index ()

print(a)報錯

生命週期:

1.內建命名空間

在python直譯器啟動時生效,關閉python直譯器的時候失效

2.全域性命名空間

當你啟動當前這個py檔案時侯就開始生效,當前頁**執行結束之後失效

3.區域性命名空間

當你呼叫當前函式時生效,函式**執行結束時就失效

命名空間查詢順序:

區域性:區域性》全域性》內建

全域性:全域性》內建  #內建找不到報錯

函式內部使用名字,在定義階段已經規定死了,與你位置無關

作用域:

分類:全域性作用域  全域性可以呼叫的名字,內建命名空間+全域性命名空間就存在於全域性作用域

區域性作用域  區域性可以呼叫區域性命名空間

globa 宣告全域性變數

nonlocal  在區域性中宣告區域性變數

可變型別可以在區域性修改上層外部變數的值

函式物件,命名空間和作用域

目錄函式的巢狀 命名空間和作用域 作用域global關鍵字 nonlocal關鍵字 注意點python中一切皆物件 def f1 print from f1 func f1 print f1 f1 print func func 列印結果 f1 funcdef f1 print from f1 de...

命名空間和函式原型

今天學了c primer plus上的第二章,主要講了c 的一些基本概念和操作。由於之前學過其他語言,看起來相對輕鬆。其中收穫最大是關於 命名空間 和 函式原型 的內容 一 命名空間 命名空間支援是c 的乙個特性。以std為例 std 是個命名空間識別符號,c 標準庫中的函式或者物件都是在命名空間s...

函式引數和命名空間

在函式的定義階段括號內填寫的引數,簡稱 形參 形參只有一種表現形式就是變數名。def func a,b a和b就是函式func的形參 pass 在函式的呼叫階段括號內傳入的引數,簡稱實參。實參有多種表現形式,值 變數名 返回值等,但核心就是資料值。func 1,2 資料1和2就是函式func的實參 ...