4_函數

1. 參數重載

       1.1 參數重載的第一種狀況:默認參數重載,將默認參數放在參數列表的最後,而且必定要保證默認參數指向的是不變對象。下面是指向可變對象和不變對象的例子:

def add_end1(L=[]):
    L.append('end')
    return L

def add_end2(L=None):
    L.append('end')
    return L
    
>>>add_end1()
['end']
>>>add_end1()
['end','end']


>>>add_end2()
['end']
>>>add_end2()
['end']

       1.2 參數重載的第二種狀況:可變參數數目重載,在參數前添加一個*號便可:

def calc(*number):
    sum=0
    for n in number:
        sum+=n*n
    return sum
##這樣既能夠把列表和元組傳進去,也能夠手動輸入多個不肯定數目的參數

       1.3 參數重載的第三種狀況:關鍵字參數和命名關鍵字參數

##兩者通常都用於字典中
def person1(name,age,**kw):
    print()

##可變參數後面的命名關鍵字參數不須要*分隔符
def person2(name,age,*args,city,job):
    print()
    
##命名關鍵字參數的傳入必需要傳入參數的名字
def person3(name,age,*,city,job):
    print()

2. Tips

       2.1 函數返回多個值其實是返回一個元組python

       2.2 input()函數默認接受爲字符串類型,須要使用強制轉換函數app

       2.3 range()函數返回的是一個整數可迭代對象,並非真正意義上的列表類型。默認必須參數爲stop。range(start,stop,step),左開右閉函數

       2.4 不返回值的函數稱爲過程code

       2.5 定義函數時,因爲不像C語言那樣對參數類型的定義有嚴格限制,因此若是有必要,須要對參數類型寫語句作一個檢查,防止出錯時編譯器不能提供準確的定位。對象

def my_abs(x):
    if not isinstance(x,(int,float)):           ##類型檢查語句
        raise TypeError('bad operand type')
    if(x>0):
        return x
    else:
        return -x
相關文章
相關標籤/搜索