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),我們就可以把前者當作一個元組來處理,打印結果看得出來是一個元組。注意,調(diào)用方法是參數(shù)不定長,而在方法執(zhí)行的時候,長度已定了,所以是元組。同時,我們可以把后者當作一個字典來處理。
示例代碼里使用可變長參數(shù)實現(xiàn)了一個類屬性的個性化定制,對于一個Person類,你可以通過傳入字典類型的參數(shù)使這個類有更多原來不存在的屬性,實現(xiàn)方法 是用了exec方法,目前只能通過字符串的參數(shù)。這里只是展示了可變參數(shù)的使用及exec的神奇力量。真正的函數(shù)不應該允許任意用戶自定義屬性的,可變參 數(shù)的目的是為定義函數(shù)方便及調(diào)用函數(shù)時,參數(shù)傳入形式更自由而已。
希望本文所述對大家的Python程序設計有所幫助。
- 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)加載包的方法小結
- Python中動態(tài)創(chuàng)建類實例的方法
- Python動態(tài)導入模塊的方法實例分析
相關文章
python使用requests?POST提交一個鍵多個值方式
這篇文章主要介紹了python使用requests?POST提交一個鍵多個值方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-02-02
Python使用shelve模塊實現(xiàn)簡單數(shù)據(jù)存儲的方法
這篇文章主要介紹了Python使用shelve模塊實現(xiàn)簡單數(shù)據(jù)存儲的方法,涉及shelve模塊實現(xiàn)數(shù)據(jù)存儲的技巧,需要的朋友可以參考下2015-05-05
python中matplotlib實現(xiàn)最小二乘法擬合的過程詳解
這篇文章主要給大家介紹了關于python中matplotlib實現(xiàn)最小二乘法擬合的相關資料,文中通過示例代碼詳細介紹了關于最小二乘法擬合直線和最小二乘法擬合曲線的實現(xiàn)過程,需要的朋友可以參考借鑒,下面來一起看看吧。2017-07-07

