你好,,我是zhenguo 這是我的第480篇原創(chuàng) 最近一周思考總結(jié)了Python 5個比較容易混淆的核心概念,,同時附上我最通俗的區(qū)分和理解方法,相信對你一定有幫助,! 1 變量賦值和別名Python變量賦值是指創(chuàng)建一個對象并綁定到某個變量上,,如下創(chuàng)建一個列表對象,并賦值給變量a: a = [3,1,2] 以上基本范式可表達(dá)為:
而別名是指變量1賦值給變量2的過程: variable2 = variable1 比如:
并且修改變量b,,變量a也會變化,,所以被稱為別名: b[0] = 8 # a[0] 也會變?yōu)? 2 別名和淺拷貝別名和淺拷貝會被經(jīng)常混淆,,別名如上所述僅僅是某個變量賦值給某個變量,,僅此而已。 而淺拷貝已經(jīng)發(fā)生一層復(fù)制,,并且在這一層上修改某個變量,,不會影響另一個變量。如下:
3 == 和 isPython一切皆對象,,而每個對象又有'三大件':
基于此,,A == B 比較的是對象A和B的值是否相等;A is B 比較的是對象A和B的編號是否相等,。記住這句話,,或許你再也不會混淆這兩個操作符。 4 淺拷貝和深拷貝對象是可以做有限次嵌套的,,可以有很多層,。 淺拷貝只拷貝最外層;而深拷貝會拷貝所有層,。 a = [[3,1,2], [5,4,6]] 淺拷貝意味著修改b的第一層不影響a,,但是修改b的第二層會同步影響到a,如下修改第二層會同步影響a
而深拷貝后,,修改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 而可變意味著值能被修改:
|
|
來自: 新用戶0935snDB > 《待分類》