python動態參數用法執行個體分析

來源:互聯網
上載者:User

   本文執行個體講述了python動態參數用法。分享給大家供大家參考。具體分析如下:

  先來看一段代碼:

  ?

1 2 3 4 5 6 7 8 9 10 11 12 class Person: def __init__(self,*pros,**attrs): self.name = "jeff" self.pros = pros for (key,value) in attrs.items(): stm = "self.%s = /"%s/""% (key,value) exec(stm) if __name__ == "__main__": jeff = Person(1,2,3,sex="boy") print jeff.pros print jeff.sex print dir(jeff)

  列印出來的內容是:

  ?

1 2 3 (1, 2, 3) boy ['__doc__', '__init__', '__module__', 'name', 'pros', 'sex']

  python不定參數:

  參數以一個*號開頭的代表著一個任意長度的數組,可以接收連續一串參數,如上面代碼裡傳的是1,2,3,你可以更多。

  參數以兩個*號開頭的代表著一個字典,參數的形式是“key=value”,接受連續任意多個參數。

  在函數內,我們就可以把前者當作一個元組來處理,列印結果看得出來是一個元組。注意,調用方法是參數不定長,而在方法執行的時候,長度已定了,所以是元組。同時,我們可以把後者當作一個字典來處理。

  範例程式碼裡使用可變長參數實現了一個類屬性的個人化定製,對於一個Person類,你可以通過傳入字典類型的參數使這個類有更多原來不存在的屬性,實現方法 是用了exec方法,目前只能通過字串的參數。這裡只是展示了可變參數的使用及exec的神奇力量。真正的函數不應該允許任意使用者自訂屬性的,可變參 數的目的是為定義函數方便及調用函數時,參數傳入形式更自由而已。

  希望本文所述對大家的Python程式設計有所協助。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.