自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Python五個(gè)極易混淆的核心概念

開(kāi)發(fā) 后端
最近一周思考總結(jié)了Python 5個(gè)比較容易混淆的核心概念,同時(shí)附上我最通俗的區(qū)分和理解方法,相信對(duì)你一定有幫助!

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

[[434896]]

1 變量賦值和別名

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

 

  1. a = [3,1,2] 

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

 

  1. variable1 = object1 

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

 

  1. variable2 = variable1 

比如:

 

  1. b = a 

并且修改變量b,變量a也會(huì)變化,所以被稱為別名:

 

  1. b[0] = 8 # a[0] 也會(huì)變?yōu)? 

2 別名和淺拷貝

別名和淺拷貝會(huì)被經(jīng)?;煜?,別名如上所述僅僅是某個(gè)變量賦值給某個(gè)變量,僅此而已。

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

  1. b = a.copy() 
  2. b[0] = 8 # 此時(shí)修改b[0]不會(huì)影響a 

3 == 和 is

Python一切皆對(duì)象,而每個(gè)對(duì)象又有"三大件":

  • 編號(hào)
  • 類型

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

4 淺拷貝和深拷貝

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

淺拷貝只拷貝最外層;而深拷貝會(huì)拷貝所有層。

 

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

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

 

  1. from copy import copy 
  2.  
  3. In [8]: b=copy(a) 
  4.  
  5. In [9]: b[0][0]=8 
  6. In [10]: a 
  7. Out[10]: [[8, 1, 2], [5, 4, 6]] 
  8. In [11]: b 
  9. Out[11]: [[8, 1, 2], [5, 4, 6]] 

 

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

5 可變和不可變

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

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

可變的類型常見(jiàn)的:列表、字典、集合

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

 

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

 

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

 

  1. In [14]: a = [3,1] 
  2.  
  3. In [15]: a[0] = 10 
  4.  
  5. In [16]: a 
  6. Out[16]: [10, 1] 

 

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2023-03-08 07:34:23

響應(yīng)式更新細(xì)粒度更新

2009-11-25 11:20:31

并發(fā)

2024-05-17 12:43:49

Python編程開(kāi)發(fā)

2021-01-11 09:33:37

Maven數(shù)目項(xiàng)目

2023-10-22 23:28:34

2011-05-23 13:05:25

重載重寫隱藏

2022-01-27 13:47:10

Kubernete命令Linux

2024-11-11 08:00:00

PyTorch深度學(xué)習(xí)

2011-07-14 15:23:34

java

2018-11-08 15:12:16

數(shù)據(jù)分析算法決策樹(shù)

2010-08-30 17:46:10

DHCP服務(wù)

2024-11-11 06:10:00

Python生成器迭代器

2015-08-18 08:55:03

redux核心

2009-02-02 10:00:11

ADO.NETASP.NET

2019-01-23 08:59:00

大數(shù)據(jù)大數(shù)據(jù)治理數(shù)據(jù)管理

2022-10-08 07:36:08

Kubernetes開(kāi)源容器

2011-07-10 15:18:11

開(kāi)發(fā)

2021-01-15 08:35:49

Zookeeper

2016-09-28 08:52:44

2020-09-23 13:45:07

Python編程語(yǔ)言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)