011. Python中*args, **kwargs 和 pass 和self 解釋


*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解釋:

  1. self用於區分類方法和普通函數; 普通函數如果沒有形參, 那就是函數名后直接跟上(), 類方法永遠有一個額外的參數名稱, 並且是第一個參數, 那就是self; 就算想在類內部定義一個無任何參數的方法, 也必須帶上self(並且一定要放在第一位)參數, 當然調用的時候不用為這個參數賦值, Python會提供這個值; 這個特別的變量就是對象本身, 按照慣例它的名稱是self.雖然可以給這個參數任何名稱, 但是 強烈建議 你使用self這個名稱——其他名稱都是不贊成你使用的。使用一個標准的名稱有很多優點——你的程序讀者可以迅速識別它, 如果使用self的話, 還有些IDE(集成開發環境)也可以幫助你.
  2. self相當於Java、C#中的this關鍵字
  3. 假如有一個類稱為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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM