*args, **kwargs →在python都表示可變參數, *args表示任意多個任意類型無名參數, 是一個元組; **kwargs表示關鍵字參數(key/value參數), 是一個字典,接收的參數如a=’hello’,b=1 ; 注意如果*args, **kwargs同時使用的時候, 必須*args在前
#coding=utf-8 def fun(a,*b): print a print b print fun(1,2,3,4,5,6) #fun(1, a=2) 是會報錯的 #輸出結果: #1 #(2, 3, 4, 5, 6) #可以看到, 形參a只接收了一個參數1, 其它后面的的5個參數全部被b接收了 #coding=utf-8 def funKW(a, **b): print a print b print funKW(1,b='2',c=200) #輸出結果: #1 #{'c': 200, 'b': '2'}
pass關鍵字解釋:
在編寫一個程序時, 執行語句部分思路還沒有完成用pass語句來占位(標記), 是要過后來完成的代碼. 比如下面這樣:
def test(): pass
定義一個函數 test, 但函數體部分暫時還沒有完成, 又不能空着不寫內容, 因此可以用pass來替代占個位置.
pass也可用於while語句的無限循環, 每次迭代時不需要任何操作(最好不要寫這樣的代碼)
def whileTest(): while(True): pass
1. 空語句, 是為了保持程序結構的完整性。
2. 不做任何事情, 一般用做占位語句。
self解釋:
- self用於區分類方法和普通函數; 普通函數如果沒有形參, 那就是函數名后直接跟上(), 類方法永遠有一個額外的參數名稱, 並且是第一個參數, 那就是self; 就算想在類內部定義一個無任何參數的方法, 也必須帶上self(並且一定要放在第一位)參數, 當然調用的時候不用為這個參數賦值, Python會提供這個值; 這個特別的變量就是對象本身, 按照慣例它的名稱是self.雖然可以給這個參數任何名稱, 但是 強烈建議 你使用self這個名稱——其他名稱都是不贊成你使用的。使用一個標准的名稱有很多優點——你的程序讀者可以迅速識別它, 如果使用self的話, 還有些IDE(集成開發環境)也可以幫助你.
- self相當於Java、C#中的this關鍵字
- 假如有一個類稱為Animal和這個類的一個實例Dog。當你調用這個對象的方法Dog.Eat(arg1, arg2)的時候, 這會由Python自動轉為Animal.method(Dog, arg1, arg2)→這就是self的原理了. 這也意味着如果你有一個不需要參數的方法, 你還是得給這個方法定義一個self參數。
class Animal(): def eat(self): print 'This dog eating' a=Animal() a.eat()