Day 10 函式的高階

2022-09-01 22:54:29 字數 1347 閱讀 4221

一、動態傳參

1、形參:

1.位置引數

2.預設引數

3.動態引數

1. *args:動態接收位置引數

2. **kwargs:動態接收關鍵字引數

def chi(*food):

print("

我要吃"

, food)

chi(

"大公尺飯

", "

小公尺飯"

)結果:

我要吃 (

'大公尺飯

', '

小公尺飯') #

多個引數傳遞進去. 收到的內容是元組tuple

*, **:在形參位置:聚合

在實參位置:打散

def fun(*args):

print

(args)

lst = [1, 4, 7]

fun(lst[0], lst[1], lst[2])

fun(*lst) #

可以使用*把乙個列表按順序打散

s = "

臣妾做不到

"fun(*s) #

字串也可以打散, (可迭代物件)

順序: 位置,*args,預設值,**kwargs

2、實參:

1.位置引數

2.關鍵字引數

3.混合引數

二、命名空間和作用域

命名空間:儲存名字用的(變數,函式,類)

1.內建命名空間:python自己,print,input,len

2.全域性命名空間:你寫的**從上到下

3.區域性命名空間:函式,類,方法,其他模組,物件

載入順序:內建命名空間, 全域性命名空間, 區域性命名空間(函式被執行的時候)

取值順序:區域性命名空間, 全域性命名空間, 內建命名空間

作用域:

全域性作用域

內建 + 全域性

區域性作用域

區域性命名空間

從區域性找全域性可以,但是從全域性找區域性是不可以的

globals() 檢視全域性作用域中的名字

locals() 檢視當前作用域中的名字

三、函式的巢狀(難點)

每一層都會產生獨自的命名空間

只要遇見了()就是函式的呼叫,如果沒有()就不是函式的呼叫

四、 nonlocal,global

global:在區域性引入全域性的內容,可以昇華乙個變數為全域性變數

day10 函式高階

1.1什麼是返回值 返回值就是從函式內部傳遞到函式外部的資料 預設情況下函式內部產生的新資料,在函式外部不能使用 1.2怎麼確定函式返回值 1 python中每個函式都有返回值,預設情況下是none,返回值是什麼就看執行函式體的時候遇到的return關鍵字後面的資料是什麼 如果沒有遇到return,...

day10 函式的高階

順序 位置引數 動態接收位置引數 預設值 動態接收關鍵字引數 位置引數 args 預設引數值 kwargs 一.函式引數 動態傳參 1.動態接受位置引數 在引數位置編寫 表示接收任意內容 動態接收引數的時候要注意 動態引數必須在位置引數後面 2.動態接收關鍵字引數 動態接收關鍵字引數一定在最後面 在...

day 10 函式的高階

動態傳參 重點 形參 args在形參位置,表示不定引數 接受的是位置引數 接受到的位置引數的動態傳參 都是元組 形參的順序 位置 args 預設值 kwargs 以後寫引數,可以隨意的進行搭配 def chi zhushi,cai,fushi,tang,tiandian print zhushi,c...