首頁 >後端開發 >Python教學 >python函數呼叫與參數傳遞(實例解析)

python函數呼叫與參數傳遞(實例解析)

乌拉乌拉~
乌拉乌拉~原創
2018-08-15 13:51:427105瀏覽

 今天這篇文章我們就來了解python函數呼叫與參數傳遞相關的知識。當我們了解了什麼是函數之後需要了解的是python如何電用函數。 畢竟只知道什麼是函數而不知道python怎麼呼叫呼叫函數的話那麼只知道函數的定義也是沒有什麼作用的,廢話不多說我們開始學習呼叫函數吧。

函數呼叫:定義一個函數只給了函數一個名稱,指定了函數裡包含的參數,和程式碼區塊結構。這個函數的基本結構完成以後,你可以透過另一個函數呼叫執行,也可以直接從Python提示字元執行。如下實例呼叫了printme()函數:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 定义函数
def printme( str ):
   "打印任何传入的字符串"
   print str;
   return;
 
# 调用函数
printme("我要调用用户自定义函数!");
printme("再次调用同一函数");

以上實例所輸出的結果如下所示:

我要调用用户自定义函数!
再次调用同一函数

這是相當的簡單,只需要動動手去試驗一下就可以了解。

接下來我們來說一下參數傳遞:在 python 中,類型屬於對象,變數是沒有類型的。

參考如下的編碼:

a=[1,2,3]
 
a="Runoob"

(以上程式碼中,[1,2,3] 是List 類型,"Runoob" 是String 類型,而變數a 是沒有類型,她只是一個對象的引用(一個指針),可以是List 類型對象,也可以指向String 類型對象。)

可更改(mutable)與不可更改(immutable)物件

(在python 中,strings, tuples, 和numbers 是不可更改的對象,而list,dict 等則是可以修改的物件。)

1.不可變類型:變數賦值 a=5 後再賦值 a=10,這裡實際是新產生一個int 值物件10,再讓a 指向它,而5 被丟棄,不是改變a的值,相當於新生成了a。

2.可變型別:變數賦值 la=[1,2,3,4] 後再賦值 la[2]=5 則是將list la 的第三個元素值更改,本身la沒有動,只是其內部的一部分值被修改了。

python 函數的參數傳遞:

1.不可變型別:類似 c 的值傳遞,如 整數、字串、元組。如fun(a),傳遞的只是a的值,沒有影響a物件本身。例如在 fun(a)內部修改 a 的值,只是修改另一個複製的對象,不會影響 a 本身。

2.可變型別:類似 c 的引用傳遞,如 列表,字典。如fun(la),則是將la 真正的傳過去,修改後fun外部的la也會受影響

(python 中一切都是對象,嚴格意義我們不能說值傳遞還是引用傳遞,我們應該說傳不可變物件和傳輸可變物件。)

Python傳不可變物件實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
def ChangeInt( a ):
    a = 10
 
b = 2
ChangeInt(b)
print b # 结果是 2

(實例中有int 對象2,指向它的變數是b,在傳遞給ChangeInt 函數時,以傳值的方式複製了變數b,a 和b 都指向了同一個Int 對象,在a =10 時,則新產生一個int 值物件10,並讓a 指向它。)

python傳可變物件實例:

#!/usr/bin/python
# -*- coding: UTF-8 -*-
 
# 可写函数说明
def changeme( mylist ):
   "修改传入的列表"
   mylist.append([1,2,3,4]);
   print "函数内取值: ", mylist
   return
 
# 调用changeme函数
mylist = [10,20,30];
changeme( mylist );
print "函数外取值: ", mylist

實例中傳入函數的和在末尾添加新內容的物件用的是同一個引用,故輸出結果如下:

函数内取值:  [10, 20, 30, [1, 2, 3, 4]]
函数外取值:  [10, 20, 30, [1, 2, 3, 4]]

 以上就是今天所要說明的內容,如何呼叫函數,以及python參數傳遞。雖然以上的知識點舉了實例,但是還是需要自己來試一試,畢竟自己不動手的話就如同紙上談兵一樣,動手實踐才是驗證所學的最好的方法與途徑。最後我也希望這篇文章能為正在學習python的你帶來一點幫助
#更多相關知識,請造訪php中文網Python教程欄位。

以上是python函數呼叫與參數傳遞(實例解析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn