Python tutorial閱讀之函數的定義與使用

來源:互聯網
上載者:User

標籤:dead   append   全域變數   參數傳遞   add   變數   glob   修改   cti   

函數的定義

Python 使用關鍵字def定義函數,格式與C語言類似,但是沒有傳回型別,參數也不需要設定類型。

def add(a, b):    """這是函數的文檔字串"""    return a + bdef append(data):    data.append(a) #如果data為可變對象時候,例如List、Dict,則會改變實參的值    

函數調用 會為函數局部變數產生一個新的符號表。確切的說,所有函數中的變數賦值都是將值儲存在局部符號表。變數引用首先在局部符號表中尋找,然後是包含函數的局部符號表,然後是全域符號表,最後是內建名字表。因此,全域變數不能在函數中直接賦值(除非用 global 語句命名),儘管他們可以被引用。

Python參數傳遞採用的肯定是“傳對象引用”的方式。這種方式相當於傳值和傳引用的一種綜合。如果函數收到的是一個可變對象(比如字典或者列表)的引用,就能修改對象的原始值--相當於通過“傳引用”來傳遞對象。如果函數收到的是一個不可變對象(比如數字、字元或者元組)的引用,就不能直接修改原始對象--相當於通過“傳值‘來傳遞對象。


參數

預設參數: 為參數設定預設值,調用函數時,如果沒有值即使用預設值。

def login(username,password = "123"):    """登入函數"""    passlogin("admin")login("admin","password")def f(a, L=[]):    L.append(a)    return Lprint(f(1))print(f(2))print(f(3))# 輸出結果[1][1, 2][1, 2, 3]>>> def f(x = []):...     x.append(1)...     print(id(x))... >>> f()140693834878408>>> f()140693834878408>>> f()140693834878408>>> 

關鍵字參數調用:即指定形式key = value來調用函數,關鍵字參數應該在位置參數後面。

def parrot(voltage, state=‘a stiff‘, action=‘voom‘, type=‘Norwegian Blue‘):    print("-- This parrot wouldn‘t", action, end=‘ ‘)    print("if you put", voltage, "volts through it.")    print("-- Lovely plumage, the", type)    print("-- It‘s", state, "!")# 以下調用均是錯誤的parrot()                     # 必須參數沒有parrot(voltage=5.0, ‘dead‘)  # 關鍵字參數必須在位置參數之後parrot(110, voltage=220)     # **任何參數都不可以多次賦值**parrot(actor=‘John Cleese‘)  # 不存在該參數名

Python tutorial閱讀之函數的定義與使用

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.