python動態(tài)參數(shù)用法實例分析
本文實例講述了python動態(tài)參數(shù)用法。分享給大家供大家參考。具體分析如下:
先來看一段代碼:
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)
打印出來的內(nèi)容是:
(1, 2, 3) boy ['__doc__', '__init__', '__module__', 'name', 'pros', 'sex']
python不定參數(shù):
參數(shù)以一個*號開頭的代表著一個任意長度的數(shù)組,可以接收連續(xù)一串參數(shù),如上面代碼里傳的是1,2,3,你可以更多。
參數(shù)以兩個*號開頭的代表著一個字典,參數(shù)的形式是“key=value”,接受連續(xù)任意多個參數(shù)。
在函數(shù)內(nèi),我們就可以把前者當作一個元組來處理,打印結(jié)果看得出來是一個元組。注意,調(diào)用方法是參數(shù)不定長,而在方法執(zhí)行的時候,長度已定了,所以是元組。同時,我們可以把后者當作一個字典來處理。
示例代碼里使用可變長參數(shù)實現(xiàn)了一個類屬性的個性化定制,對于一個Person類,你可以通過傳入字典類型的參數(shù)使這個類有更多原來不存在的屬性,實現(xiàn)方法 是用了exec方法,目前只能通過字符串的參數(shù)。這里只是展示了可變參數(shù)的使用及exec的神奇力量。真正的函數(shù)不應該允許任意用戶自定義屬性的,可變參 數(shù)的目的是為定義函數(shù)方便及調(diào)用函數(shù)時,參數(shù)傳入形式更自由而已。
希望本文所述對大家的Python程序設(shè)計有所幫助。
- Python實現(xiàn)動態(tài)加載模塊、類、函數(shù)的方法分析
- Python動態(tài)加載模塊的3種方法
- python 動態(tài)獲取當前運行的類名和函數(shù)名的方法
- Python中使用動態(tài)變量名的方法
- Python中動態(tài)獲取對象的屬性和方法的教程
- Python實現(xiàn)動態(tài)添加類的屬性或成員函數(shù)的解決方法
- 在python的類中動態(tài)添加屬性與生成對象
- python動態(tài)加載變量示例分享
- python動態(tài)加載包的方法小結(jié)
- Python中動態(tài)創(chuàng)建類實例的方法
- Python動態(tài)導入模塊的方法實例分析
相關(guān)文章
python判斷一個數(shù)是否能被另一個整數(shù)整除的實例
今天小編就為大家分享一篇python判斷一個數(shù)是否能被另一個整數(shù)整除的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12詳解PyTorch手寫數(shù)字識別(MNIST數(shù)據(jù)集)
這篇文章主要介紹了詳解PyTorch手寫數(shù)字識別(MNIST數(shù)據(jù)集),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08Python如何利用正則表達式爬取網(wǎng)頁信息及圖片
這篇文章主要給大家介紹了關(guān)于Python如何利用正則表達式爬取網(wǎng)頁信息及圖片的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-04-04