萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> 編程語言綜合 >> python動態參數用法實例分析

python動態參數用法實例分析

   本文實例講述了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程序設計有所幫助。

copyright © 萬盛學電腦網 all rights reserved