1、位置引數:引數的位置(順序)很重要,形參和實參個數要匹配
2、關鍵字引數:對引數的位置要求不是很嚴格
3、預設值引數:
(1)如果形參中制定了預設值,在實參中可以不傳遞形參對應的實參
(2)如果形參中指定了預設值,在實參彙總傳遞該引數後,最終引數以傳遞的實參為準
4、不定長引數:
(1)*a 接受傳遞單個值,儲存為元組
(2)**b 接受鍵值對形式的引數,儲存為字典格式
# 位置引數的案例
def test(name, age):
'''對函式的作用進行描述'''
print(name + ":" + str(age))
# 關鍵字引數的案例
def must_test(name, age):
'''對函式的作用進行描述'''
print(name + ":" + str(age))
# 預設值引數的案例
def default_test(name,age=18):
'''對函式的作用進行描述'''
print(name + ":" + str(age))
#不定長引數的案例:
def no_test(*args,**b):
print(args)
print(b)
# test('test',18)
# must_test(age=18, name='test')
#default_test(name='test')
#no_test((1,2,3))
#no_test(name='test',age=18)
#針對range函式,編寫乙個方法進行呼叫,要求如下:
#1、傳遞起始值、終止值、步長
def range(a,b,c):
print('range'+'('+str(a)+','+str(b)+','+str(c)+')')
range(1,101,2)
#2、起始值和終止值必傳,步長可選
def range_1(a,b,c):
print('range'+'('+str(a)+','+str(b)+','+str(c)+')')
range_1(1,101,c=1)
#3、起始值必傳,終止值和步長可選
def range(a,b,c):
print('range'+'('+str(a)+','+str(b)+','+str(c)+')')
range(1,b=108,c=6)
#4、起始值和終止值必傳,步長預設
def range(a,b,c=3):
print('range'+'('+str(a)+','+str(b)+','+str(c)+')')
range(1,101)
#return語句返回簡單型別
def test ():
return 'hello'
#return語句返回字典
def show_info(name,age):
person =
return person
#print(test())
#print(show_info('test',18))
#使用者問候
def say_hi(first_name,last_name):
'''返回完整的名字'''
full_name = first_name + '' + last_name
return full_name
while true:
print('請輸入您的姓名:')
f_name = input('姓:')
if f_name == 'q':
break
l_name = input('名:')
if l_name == 'q':
break
#呼叫函式
format_name = say_hi(f_name,l_name)
print('hello',format_name+'!')
#傳遞列表型別資料
def test(names):
for name in names:
print(name)
user_name = ['sdf','werwe','werwerwer','adfa']
test(user_name)
Python函式引數型別
函式的引數 定義函式 引數 普通引數,預設引數,可變引數 可變位置引數,可變關鍵字引數 keyword only 引數 呼叫函式 傳參 位置引數,關鍵字引數,引數結構 位置引數解構,關鍵字引數解構 普通引數 x,y def add x,y return x y 預設引數 x 1 def inc ba...
python 函式引數型別檢查
python在3.5後引入了引數型別註解,例 def add x int,y int int 對x,y和返回值都進行注釋,為int型別 return x y注 註解是對函式引數和返回值的 注釋 沒有強制定義的作用 因為python是動態語言啊 那麼既然註解不能強制定義型別,在函式呼叫中怎麼判斷傳入的...
python 函式引數型別檢查
在python中,不知道函式引數型別是乙個很正常的事情,特別是在乙個大專案裡。我見過有些專案裡,每乙個函式體的前十幾行都在檢查引數型別,這實在是太麻煩了。而且一旦引數有改動,這部分也需要改動。下面我們用裝飾器來實現,函式引數的強制型別檢查。首先,這個裝飾器,要接受型別引數,和指定函式引數的型別引數。...