久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python 5個極易混淆的核心概念

 新用戶0935snDB 2021-11-12

你好,,我是zhenguo

這是我的第480篇原創(chuàng)

最近一周思考總結(jié)了Python 5個比較容易混淆的核心概念,,同時附上我最通俗的區(qū)分和理解方法,相信對你一定有幫助,!

1 變量賦值和別名

Python變量賦值是指創(chuàng)建一個對象并綁定到某個變量上,,如下創(chuàng)建一個列表對象,并賦值給變量a:

a = [3,1,2]

以上基本范式可表達(dá)為:

variable1 = object1

而別名是指變量1賦值給變量2的過程:

variable2 = variable1

比如:

b = a 

并且修改變量b,,變量a也會變化,,所以被稱為別名

b[0] = 8 # a[0] 也會變?yōu)?

2 別名和淺拷貝

別名和淺拷貝會被經(jīng)常混淆,,別名如上所述僅僅是某個變量賦值給某個變量,,僅此而已。

而淺拷貝已經(jīng)發(fā)生一層復(fù)制,,并且在這一層上修改某個變量,,不會影響另一個變量。如下:

b = a.copy()b[0] = 8 # 此時修改b[0]不會影響a

3 == 和 is

Python一切皆對象,,而每個對象又有'三大件':

  • 編號
  • 類型

基于此,,A == B 比較的是對象A和B的值是否相等;A is B 比較的是對象A和B的編號是否相等,。記住這句話,,或許你再也不會混淆這兩個操作符。

4 淺拷貝和深拷貝

對象是可以做有限次嵌套的,,可以有很多層,。

淺拷貝只拷貝最外層;而深拷貝會拷貝所有層,。

a = [[3,1,2], [5,4,6]]

淺拷貝意味著修改b的第一層不影響a,,但是修改b的第二層會同步影響到a,如下修改第二層會同步影響a

from copy import copyIn [8]: b=copy(a)In [9]: b[0][0]=8In [10]: aOut[10]: [[8, 1, 2], [5, 4, 6]]In [11]: bOut[11]: [[8, 1, 2], [5, 4, 6]]

而深拷貝后,,修改b的任意層都不會影響a

5 可變和不可變

還記得第3節(jié)提起的每個對象'三大件'嗎?每個對象都有類型,而我們討論可變和不可變時,,其實(shí)指代的正是類型,。

不可變的類型常見的:整型、字符串,、浮點(diǎn)型,、元組、凍結(jié)集合

可變的類型常見的:列表,、字典,、集合

不可變意味著值不能被修改,如下修改元組的值,,會拋出TypeError的異常,,這是和類型密切相關(guān)的異常:

a = (3,1)a[0] = 10TypeError: 'tuple' object does not support item assignment

而可變意味著值能被修改:

In [14]: a = [3,1]In [15]: a[0] = 10In [16]: aOut[16]: [10, 1]

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn),。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多