函數傳參的方式


pass的作用:
pass語句表示一個空的語句塊,僅作為占位,執行后沒有任何效果
用於待開發的代碼

編寫函數的原則
a.函數設計盡量短小
b.函數聲明要做到合理、簡單、易懂
c.函數設計要考慮向下兼容
d.一個函數只做一件事,盡量保證函數語句粒度的一致性

函數調用參數的傳遞方式是值傳遞還是引用傳遞?
python參數傳遞采用的是“傳對象引用”的方式。這種方式相當於傳值和傳引用的一種綜合。
如果函數傳遞的是可變對象(比如字典、列表)的引用,是可以修改原對象的原始值---相當於通過“傳引用”來傳遞對象;
如果函數傳遞的是不可變對象(比如字符串,數字和元組)的引用,就不能修改原對象的值--相當於通過“傳值”來傳遞對象

如何在function里面設置全局變量
global 設置全局變量


函數的傳遞參數的方式
調用函數是可使用的參數類型
必備參數
關鍵字參數
默認參數
不定長參數

必備參數:必備參數必須以正確的順序傳入函數,調用時的數量必須和聲明時參數的數量一致
def printstr(s):
    return s

print(printstr("I love python"))

 

關鍵字參數:函數調用使用關鍵字參數來確定傳入的參數值
關鍵字參數與位置無關
def func(a,b,c):
    return a+b+c

print(func(1,c=5,b=2))
默認參數:調用函數時,默認參數的值如果沒有傳入,則被認為是默認值
默認參數必須指向不可變參數
def printinfo(name,age =15):
    print("name:",name)
    print("age:",age)
    return

print(printinfo("wulaoshi"))
print(printinfo("wulaoshi",30))
不定長參數也叫缺省參數
缺省參數:*arg 函數在調用的時候自動組裝成一個tuple
def f(*args):
    for i in args:
        print(i)

f(1,2,3,4,5)
缺省參數:**kw 函數在調用的時候自動組裝成一個dict
def f(a,b,**kw):
    print(type(kw))
    for k,v in kw.items():
        print(k,v)

f(1,2,c=3,d=4)
#總結:
*arg:表示把可變的多個參數,轉換成一個元組
**kw:表示把可變的多個命令參數,轉換成一個字典


#練習:請使用**kw的方式,把可變的所有參數算個乘積
def func(a,b,**kw):
    result = a * b
    for value in kw.values():
        result *= value
    return result

print(func(1,2,c=3,d=4,e=5))

 

#練習2:同時使用*arg和**kw算下字母的長度之和,注意所有參數均使用字符串,字符串都是字母
def Mylen(*arg,**kw):
    result = 0
    for i in arg:
        result += len(i)
    for value in kw.values():
        result += len(value)
    return result

print(Mylen("abc","cdef","w",w="234",q="1000"))

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM