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

