python學習手冊筆記 18 引數

2022-08-19 14:51:11 字數 1747 閱讀 9067

00.傳遞引數

a.引數的傳遞時通過自動將物件賦值給本地變數名來實現的。函式引數[呼叫者傳送的共享物件引用值]再實際中只是python賦值的另乙個例項而已。因為引用是以指標的形式實現的,所有的引數實際上都是通過指標及逆行傳遞的。作為引數被傳遞的物件從來不自動拷貝

b.再函式內不得引數名得賦值不會影響呼叫者。

c.改變函式得可變物件引數得值也許會對呼叫者有影響。

d.不可變引數「通過值」進行傳遞。像證書和字串這樣得物件是通過物件引用而不是拷貝進行傳遞的,但是因為你無論怎樣都不可能再原處改變不可變物件,實際的效果酒很想建立了乙份拷貝。

e.可變物件是通過「指標」進行傳遞的。

01.02.引用:引數。因為引數是通過賦值傳遞的,函式中的引數名可以在呼叫時通過變數實現共享都西昂。因此,函式中對可變物件引數在原處的修改能夠影響呼叫者。

03.這樣做僅僅時防止了這些改變會影響呼叫者。為了真正意義上防止這些改變,我們總是能夠將可變物件轉換為不可變物件來杜絕這種問題。

04.匹配語法

語法 位置 解釋

func(value) 呼叫者 常規引數:通過位置進行匹配

func(name=value) 呼叫者 關鍵字引數:通過變數名匹配

func(*squence) 呼叫者 以name傳遞所有的物件,並作為獨立的給予位置的引數

func(**dict) 呼叫者 以name成對的傳遞所有的關鍵字/值,並作為獨立的關鍵字引數

def func(name) 函式 常規引數:通過位置或變數名進行匹配

def func(name=vlaue) 函式 預設引數值,如果沒有再呼叫者巨集傳遞的話

def func(*name) 函式 匹配並收集(在元組中)所有包含位置的引數

def func(**name) 函式 匹配並收集(在字典中)所有包含位置的引數

def func(*args, name) 函式 引數必須在呼叫中按照關鍵字傳遞

def func(*, name=value)    

05.特定的引數匹配模式可以自由地確認又多少引數時必須傳遞給函式的。如果函式定於i了預設引數,如果你傳遞太少的引數他們就會被使用。如果乙個函式使用*可變引數列表的形式,你能夠傳入任意多的引數;*變數名會將額外的引數收集到乙個資料結構中去。

06.python內部時使用以下的步驟來在賦值前進行引數匹配的:

a.通過位置分配非關鍵字引數

b.通過匹配變數名分配關鍵字引數

c.其他額外的非關鍵字引數分配到*name元組中

d.其他額外的關鍵字引數分配到**name字典中

e.用預設值分配給在頭部為得到分配的引數。

07.通過變數名進行匹配的關鍵字,而在函式頭部,它為乙個可選的引數定義了預設值。無論是哪種情況,這都不是賦值語句。它是在這兩種情況下的特定語法,改變了預設的引數匹配機制。

08.*和**,是讓函式支援接受任意數目的引數的。他們都可以出現在函式定義或是函式呼叫鐘,並且他們在兩種場合下有著相關的目的。

09.解包引數:它域函式定義的意思相反。它會解包引數的集合,而不是建立引數的集合。

10.應用函式通用性

if :

action,args = func1, (1,)

else:

action, args = func2, (1,2,3)

...action(*args)

11.函式頭部的排序規則通用化了,允許我們指定keyword-only引數——即必須只按照關鍵傳遞並且不會由乙個位置引數來填充的引數。如果想要乙個函式既處理任一多個引數,也接收可能的配置選項的話,這是很有用的。

python學習筆記18

棧 stack 可以用順序表實現,也可以用鍊錶實現,其原理為後進先出,操作包括 stack 建立乙個新的空棧 push item 新增乙個新的元素item到棧頂 pop 彈出棧頂元素 peek 返回棧頂元素 is empty 判斷棧是否為空 size 返回棧的元素個數。佇列 queue 也是可以用順...

python學習手冊學習筆記(一)

第三章 如何執行檔案 避免命令列執行時閃退 加input 到最後 匯入 import 從本質上講,就是載入另乙個檔案。把其中乙個模組檔案設計成主檔案。屬性 繫結在特定物件上的變數名 比如乙個模組 讀取模組檔案的變數名 import from reload。從模組檔案中獲得變數名 from myfil...

《python學習手冊》閱讀筆記5 1 5 14

不知不覺這麼久沒寫了,兩周時間,看完了字串,列表與字典,元組與檔案,整個第二部分啃完了,第三部分是語句,再往後好像就是平時寫的時候沒接觸過的比較深的東西了,到時候應該會寫詳細點。print usage thingy options h display this usage message h hos...