您好,登錄后才能下訂單哦!
今天小編給大家分享一下Python中函數的參數類型實例分析的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
必傳參數:調用函數時必須傳入的參數,函數定義時只定義參數名
關鍵字參數:傳入時以函數的參數名值對的方式傳入
默認參數:函數定義時為參數默認設置一個值,調用時不傳輸參數即以默認值處理
不定長參數:以*修飾或者**修飾的參數;*修飾的參數是一個元組(tuple),**修飾的參數必須是字典(dict),通常寫作*args或者**args
傳入的參數個數必須與形參的數量一致
# coding:utf-8 # Author:YangXiaoPeng def demo01(a,b): print(a, type(a)) print(b, type(b)) # demo01(1) #TypeError missing 1 required positional argument: 'b' 缺少一個未知的參數,demo01必須傳2個參數 # demo01(1, 2, 3) #TypeError demo01() takes 2 positional arguments but 3 were given, demo01函數有2個位置參數,但是接收到了3個; # 必傳參數 : 調用函數時必須傳入的參數,函數定義時只定義參數名 # 傳入的參數個數必須與形參的數量一致 demo01(1, 2) # yes demo01(1, [1, 2]) # yes demo01([2, 3], (1, 2)) # yes demo01(1, {2, 3, 4}) # yes demo01(2, {"code":'1001', "name":"zhang", "age":18}) # yes
以參數名和參數值的關聯在一起的方式進行傳參,鍵值對的模式,參數名為鍵。
# coding:utf-8 # Author:YangXiaoPeng def demo01(a,b): print(a, type(a), end="__") print(b, type(b)) # 第一個關鍵字出入的參數位置之前的參數比遜選擇關鍵字傳參;如下面的示例中,第一個關鍵字傳參的變量是a,a在函數定義的第二個位置,那么第二個位置之前的參數都必須以關鍵字傳參的形式傳參。 # demo01(1, a=2) # demo01() got multiple values for argument 'a' demo01(a=1, b=2) # yes demo01(1, b=2) # yes demo01(b=1, a=2) # yes demo01(b=1, a=[1, 2]) # yes demo01(b=[2, 3], a=(1, 2)) # yes demo01(b=1, a={2, 3, 4}) # yes demo01(b=2, a={"code":'1001', "name":"zhang", "age":18}) # yes
調用函數時不傳入參數an默認值處理,傳入時按傳入的參數值處理
# coding:utf-8 # Author:YangXiaoPeng ## 默認參數 def demo02(City = "LongNan"): print("City是默認參數,默認值是:中國,當前值是:", City) # 不傳入參數 demo02() # 傳入參數 demo02("Beijing")
傳入的參數會生成一個元組類型的變量供函數內部使用
# coding:utf-8 # Author:YangXiaoPeng ## 不定長參數 def demo03(*args): print(args,type(args)) # 傳入的參數會生成一個元組類型的變量供函數內部使用 demo03(1) demo03("code") demo03(1,"code")
傳入的參數不能少于必傳參數的個數
*args 后面的形參,必須以關鍵字參數進行傳參
# coding:utf-8 # Author:YangXiaoPeng # *args 后面的形參,必須以關鍵字參數進行傳參, def demo04(a, b, *args,c): print("a傳入的參數值是:{},b傳入的參數值是:{}, args傳入的參數是:{}, c出入的參數是:{}".format(a, b, args,c)) # 傳入的參數不能少于必傳參數的個數,a,b,c三個為必傳參數 # demo04(1, 2) # TypeError # demo04(1, 2, 3) # TypeError demo04(1, 2, c=3)
*args 之前的參數只能按位置傳參,不可以關鍵字傳參
傳入的參數個數比必傳參數多時,首先給必傳參數按位置賦值,然后將剩余的參數生成一個元組傳遞給args
**修飾的參數必須以關鍵字的參數方式傳參,Python解釋器會將傳入的關鍵字和關鍵字的值生成一個字典供函數內部使用
# coding:utf-8 # Author:YangXiaoPeng def demo05(**kwargs): print("kwargs傳入的參數是:{}".format(kwargs),type(kwargs)) kwargs = {"code":'1002', "name":"zhang"} # demo05(kwargs) # TypeError # **修飾的參數必須以關鍵字的參數方式傳參,Python解釋器會將傳入的關鍵字和關鍵字的值生成一個字典供函數內部使用 demo05(**kwargs) # kwargs傳入的參數是:{'code': '1002', 'name': 'zhang'} <class 'dict'> demo05(code='1002',name="zhang") # kwargs傳入的參數是:{'code': '1002', 'name': 'zhang'} <class 'dict'>
**修飾的參數必須是最后一個
# coding:utf-8 # Author:YangXiaoPeng # **修飾的參數必須是最后一個 """ # SyntaxError: invalid syntax def demo06(a, b, *args, c, **kwargs, d): pass """ def demo06(a, b, *args, c, **kwargs): print("a傳入的參數值是:{},b傳入的參數值是:{}, args傳入的參數是:{}".format(a, b, args),end='') print(",c傳入的參數是:{},kwargs傳入的參數是:{}".format(c,kwargs)) demo06(1, 2, 3, 4, 5, c=3, code='1002', name="zhang", d=3)
以上就是“Python中函數的參數類型實例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。