Python开发 基礎知識 2.變量 ( *arg, **kwargs )

變量 *args 和 **kwargs ( *和**為本體,名稱為通俗的名稱約定 )

*args 用於函式定義。 可將不定數量的參數傳遞給一個函數,傳入函式的引數,會先以Tuple物件收集,再設定給參數

def test_var_args(f_arg, *arg):
    print("first normal arg:", f_arg)
    for arg1 in arg:
        print("another arg through *argv:", arg1)

test_var_args(‘yasoob‘, ‘python‘, ‘eggs‘, ‘test‘)
first normal arg: yasoob
another arg through *argv: python
another arg through *argv: eggs
another arg through *argv: test

若有自訂的tuple引數集,可直接以 函數(*引數集名稱) 代入

def sum3(a, b, c):
    return a + b + c

numbers = (1, 2, 3)
print(sum3(*numbers))

  

**kwargs 可以將關鍵字引數收集在dict物件中,適合處裡帶名的參數

當一個函式所需要的參數個數很多時,可以使用這個方式

def dosome(**kwargs):
   print(kwargs)
dosome(name = ‘Justin‘, passwd = 123456, job = ‘?‘)
{‘passwd‘: 123456, ‘job‘: ‘?‘, ‘name‘: ‘Justin‘}

如果函式參數個數固定,也可傳給函式自訂的字典物件,直接以 函數(**引入字典集),則Python會依字典物件的key,將值指定給對應名稱的參數

def sum3(a, b, c):
    return a + b + c

args = {‘a‘ : 1, ‘b‘ : 2, ‘c‘ : 3}
print(sum3(**kwargs))

亦可以在一個函式中,同時使用*與**,會自動分類

def some(*arg1,**kwargs):   print(arg1)   print(arg2) 

>>> some(1, 2, 3) (1, 2, 3) {} 

>>> some(a = 1, b = 22, c = 3) () {‘a‘: 1, ‘c‘: 3, ‘b‘: 22}  

>>> some(2, a = 1, b = 22, c = 3) (2,) {‘a‘: 1, ‘c‘: 3, ‘b‘: 22} 

 

原文地址:https://www.cnblogs.com/pyleu1028/p/9882356.html

时间: 2024-08-07 23:26:02

Python开发 基礎知識 2.變量 ( *arg, **kwargs )的相关文章

Python开发 基礎知識 (未完代補)

Python屬高階語言,所編築的是字節碼 變量:只能由字母.數字.下划線構成,但不能以數字開頭,亦不能與功能關鍵字相同 (ex: and, or, as, assert, break, class, continue, def, del, elif, else, if ,expect, exec, finally, for ,in, while, from, global, import, input, print, is, not ,pass, return, try, with, yeild

Python开发 基礎知識 3.類別&方法 (bool & str) (未完待續)

類別 可使用type()查看 內建 [ 布爾:bool (Boolen) 字串:str (String) 數字:int (Integer) 小數:float 列表:list 元祖:tuple 字典:dict ] 亦可用class宣告新類別 布爾值  (用於比較.邏輯.成員判定之運算) 以 1=True,  0=False 紀錄於記憶體中 資料判定上,有東西 or 判定為真=True,沒東西( "", [ ], ( ), { }, 0 )or判定為假=False 有邏輯運算 ( and 

文明5新手的基礎知識

文明玩到現在也累積了一些經驗.由於功力不夠,只能提供一些基礎中的基礎,盼能拋磚引玉,還請高手們不吝指正. 一.        坐城: 移民坐城的規則,應該已經是常識了.當一座城建立時,就會產生4紅臉(3城市紅臉和1人口紅臉).而城本身基礎產出是2糧1鎚.當坐地的地形+資源超過這個基礎值就維持,不夠就補滿. 舉例來說,丘陵的基本產出是2鎚.因此在丘陵上坐城,因為沒糧所以會補上2糧.而2鎚的部分會保留,所以城市產出就是2糧2鎚.這也就是許多人喜歡開在丘陵的緣故(另外還有防禦力的加乘). 如果坐在丘陵

JavaScript基礎知識

1.標籤組使用 <script charset='utf-8' //設置字元集 defet //使腳本延遲到文檔解析完成,Browser已忽略 language='javascript' //設置語言,已廢棄 src='url' //引用外部檔,可選 type='text/javascript' //必選,language替代品 >代碼</script> 列印JavaScript結尾符(外部引用可直接打):'<scr'+'ipt>'); src引用JS後,不要在<

jQuery基礎知識

$(function(){}) //jQuery先執行一遍再執行其他函數 $(document).ready(fn) //文檔加載完後觸發 1. 刪除$:jQuery.noConflict() 2. $('#m') $('a') $('.n') $('*') $('ul li *') $('div#b ul.c') $('span,em,.box') $('div>p') $('div+p') $('div ~p') 3. $('#w').find('p').css() // #m下的p 同$(

BootStrap基礎知識

1. .lead //突出 .text-left //文字居左 .text-right //文字居右 .text-center //文字居中 .text-justify //文字兩端對齊 .text-nowrap //文字不換行 .text-uppercase //大寫 .text-lowercase //小寫 .text-capitalize //首字母大寫 .text-muted //柔和灰 .text-primary //主要藍 .text-success //成功藍 .text-info

Linux基礎知識 —— open&amp;close

下面說一下在用戶空間調用open/close/dup跟驅動中的open和release的對應. 下面是測試驅動: 1 #include <linux/module.h> 2 #include <linux/miscdevice.h> 3 #include <linux/fs.h> 4 5 6 static int misc_demo_open(struct inode *nodp, struct file *filp) 7 { 8 printk("%s ent

Selenium自動化測試(Python+VS2013)-基礎篇-環境安裝

Python+VS2013環境安裝 http://www.cnblogs.com/aehyok/p/3986168.html PTVS: http://microsoft.github.io/PTVS/ Python: https://www.python.org/downloads/release/python-344/ Python下安裝Selenium 運行-->cmd 切換到pip目錄(C:\Python34\Scripts) cd C:\Python34\Scripts pip ins

Python 基礎 - 變量

變量 變量主要是用來存東西,是存在內存裡 Python 變量寫法: name = "Nobody One" Shell Script 變量寫法: name="Nobody One" 依照上面的代碼來看,語言的不同,變量使用的寫法也會不同 #!/usr/bin/env python3 # -*- coding:utf-8 -*- name = "Nobody One" name2 = name print("My name is:&quo