本文執行個體講述了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程式設計有所協助。