包含python函數(shù)初始化時(shí)的詞條

python中,如何在初始化實(shí)例時(shí),動(dòng)態(tài)為其添加屬性

代碼看起來(lái)沒(méi)有問(wèn)題。如果在python3上不能用,應(yīng)該也只需要小小的調(diào)整。原則上應(yīng)該跑得通。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、重慶小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了繁昌免費(fèi)建站歡迎大家使用!

不過(guò)話說(shuō)回來(lái),這樣的技巧通常在python里用不上。因?yàn)閜ython的強(qiáng)大并不是因?yàn)樗拿嫦驅(qū)ο髮傩浴?/p>

而且這些寫(xiě)代碼的可讀性也較差。 python的強(qiáng)大在于它通用,它與C的良好結(jié)合,最重要的是它是“腳本”。 可以動(dòng)態(tài)的做任何事情,既然它的動(dòng)態(tài)很強(qiáng)大,你就不需要寫(xiě)這樣的代碼。

直接這樣

s1= AnyClass()

s1.any_variable = some_value

這樣足夠了。因?yàn)閜ython可以自動(dòng)給未知的變量,增加一個(gè)內(nèi)部屬性。所以我經(jīng)常寫(xiě)下面的這樣的代碼

class?Config:

pass

conf?=?Config()

conf.mysql_ip?=?"127.0.0.1"

這樣就可以了

python 編程, 類(lèi)初始化問(wèn)題

1.self.__class__

self是當(dāng)前,類(lèi)的實(shí)例的變量,self.__class__用于獲得對(duì)應(yīng)的類(lèi)的本身的變量。

2.前面通過(guò)

class Circle:

定義而來(lái)一個(gè)類(lèi),叫做Circle

其中,定義了類(lèi)的變量:

all_circles = []

表示是:一個(gè)名叫all_circles的列表,并且初始化賦值為[],表示一個(gè)空的列表。

3.all__這是什么用法?

是你看錯(cuò)了。

實(shí)際是:

all_circles

這是一個(gè)單個(gè)的變量而已;

這個(gè)變量,是之前類(lèi)Circle中的變量all_circles。

關(guān)于這部分內(nèi)容,建議你去看看我所總結(jié)的:

【整理】Python中:self和init__的含義 + 為何要有self和__init__

【整理】Python中變量的作用域(variable scope)

就懂了。

里面有截圖解釋的,便于你理解。

(此處不給貼地址,請(qǐng)自己用google搜標(biāo)題,即可找到帖子地址)

python模塊內(nèi)全局變量 什么時(shí)候初始化

腳本初加載時(shí),python會(huì)順序執(zhí)行所有可以執(zhí)行的東西。 如果是函數(shù)與類(lèi)定義,它就順序?qū)⒍x放到全局表里。

這里全局變最也是一樣。python從import語(yǔ)句開(kāi)始執(zhí)行,執(zhí)行到這句話today 就被初始化了。

如果這個(gè)模塊被其它模塊import ,那個(gè)在import 的時(shí)候, today會(huì)被加載。

不過(guò)跨模塊的全局變量,在python里有些古怪。要小心使用。

文章標(biāo)題:包含python函數(shù)初始化時(shí)的詞條
網(wǎng)頁(yè)URL:http://muchs.cn/article14/hgsgge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、云服務(wù)器、商城網(wǎng)站、動(dòng)態(tài)網(wǎng)站企業(yè)網(wǎng)站制作、域名注冊(cè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司