真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在python中實(shí)現(xiàn)變量賦值-創(chuàng)新互聯(lián)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)怎么在python中實(shí)現(xiàn)變量賦值,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),順昌企業(yè)網(wǎng)站建設(shè),順昌品牌網(wǎng)站建設(shè),網(wǎng)站定制,順昌網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷(xiāo),網(wǎng)絡(luò)優(yōu)化,順昌網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M(mǎn)足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專(zhuān)業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶(hù)成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

一、可變對(duì)象和不可變對(duì)象

Python在heap中分配的對(duì)象分成兩類(lèi):可變對(duì)象和不可變對(duì)象。所謂可變對(duì)象是指,對(duì)象的內(nèi)容可變,而不可變對(duì)象是指對(duì)象內(nèi)容不可變。

不可變(immutable):int、字符串(string)、float、(數(shù)值型number)、元組(tuple)

可變(mutable):字典型(dictionary)、列表型(list)

不可變類(lèi)型特點(diǎn):

看下面的例子(例1)

i = 73 
i += 2

怎么在python中實(shí)現(xiàn)變量賦值

從上圖可知,不可變對(duì)象的特征沒(méi)有變,變的只是創(chuàng)建了新對(duì)象,改變了變量的對(duì)象引用。

看一個(gè)例子(例2)   

>>>x = 1
>>>y = 1
>>>z = 1
>>> x is y
True
>>>y is z
True

如上所示,因?yàn)檎麛?shù)為不可變,x,y,z在內(nèi)存中均指向一個(gè)值為1的內(nèi)存地址,也就是說(shuō),x,y,z均指向的是同一個(gè)地址,值得注意的是,整形來(lái)說(shuō),目前僅支持(-1,100)。

總結(jié)一下,不可變對(duì)象的優(yōu)缺點(diǎn)。

優(yōu)點(diǎn)是,這樣可以減少重復(fù)的值對(duì)內(nèi)存空間的占用。

缺點(diǎn)呢,如例1所示,我要修改這個(gè)變量綁定的值,如果內(nèi)存中沒(méi)用存在該值的內(nèi)存塊,那么必須重新開(kāi)辟一塊內(nèi)存,把新地址與變量名綁定。而不是修改變量原來(lái)指向的內(nèi)存塊的值,這回給執(zhí)行效率帶來(lái)一定的降低。

下面看一個(gè)可變對(duì)象的例子(例3)   

m=[5,9]
m+=[6]

怎么在python中實(shí)現(xiàn)變量賦值

二、函數(shù)參數(shù):

Python函數(shù)參數(shù)對(duì)于可變對(duì)象,函數(shù)內(nèi)對(duì)參數(shù)的改變會(huì)影響到原始對(duì)象;對(duì)于不可變對(duì)象,函數(shù)內(nèi)對(duì)參數(shù)的改變不會(huì)影響到原始參數(shù)。原因在于:

1、可變對(duì)象,參數(shù)改變的是可變對(duì)象,其內(nèi)容可以被修改。

2、不可變對(duì)象,改變的是函數(shù)內(nèi)變量的指向?qū)ο蟆?/p>

比如存在2個(gè)列表 a 和 b

如果a=b的話, a和b的地址是相同的;如果只是想拷貝,那么就得用 a=b[:]

def mutable(b = []): #函數(shù)使用了缺省變量
  b.append(0)
  return b
>>>mutable()
[0]
>>>mutable()
[0,0]
>>>mutable()
[0,0,0]

這里連續(xù)三次以缺省值,運(yùn)行函數(shù)3此,每次的結(jié)果都不一樣,按我們的想想,三次的結(jié)果,應(yīng)該是一樣的,都為[0],但是…

那么原因是什么呢,前面說(shuō)過(guò),一切皆為對(duì)象,函數(shù)mutable也為一個(gè)對(duì)象,使用dir()查看函數(shù)的屬性:

dir(mutable)

['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__',

上面我們?nèi)芜\(yùn)行了mutable這個(gè)函數(shù),如果用mutable.__defaults__來(lái)查看函數(shù)對(duì)象的默認(rèn)參數(shù)變化的話,就會(huì)發(fā)現(xiàn)問(wèn)題了。

>>>mutable.__defaults__
([],)
>>>mutable()
[0]
>>>mutable.__defaults__
([0],)
>>>mutable()
[0,0]
>>>mutable.__defaults__
([0,0],)

仔細(xì)觀察,類(lèi)對(duì)象內(nèi)部屬性dict中'x'對(duì)應(yīng)的值,在每創(chuàng)建一個(gè)對(duì)象時(shí)都發(fā)生了變化。也就是說(shuō),在每次創(chuàng)建類(lèi)對(duì)象時(shí),變量x引用內(nèi)存的初始值是不同的,這終要?dú)w因于列表(list)的可變性導(dǎo)致的。每次創(chuàng)建對(duì)象時(shí),因?yàn)榱斜淼目勺冃裕瘮?shù)對(duì)象b的dict屬性中,x鍵對(duì)應(yīng)的值,被改變,而不是重新創(chuàng)建,所以出現(xiàn)了上面的結(jié)果。

python可以做什么

Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門(mén)、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門(mén)的大數(shù)據(jù)分析,人工智能,Web開(kāi)發(fā)等。

上述就是小編為大家分享的怎么在python中實(shí)現(xiàn)變量賦值了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章名稱(chēng):怎么在python中實(shí)現(xiàn)變量賦值-創(chuàng)新互聯(lián)
鏈接URL:http://weahome.cn/article/cejiie.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部