python指針賦值(Python賦值函數)

本文目錄一覽:

Python中的賦值,淺拷貝和深拷貝的區別

賦值(=),就是創建了對象的一個新的引用,修改其中任意一個變量都會影響到另一個。

淺拷貝:創建一個新的對象,但它包含的是對原始對象中包含項的引用(如果用引用的方式修改其中一個對象,另外一個也會修改改變){1,完全切片方法;2,工廠函數,如list();3,copy模塊的copy()函數}

深拷貝:創建一個新的對象,並且遞歸的複製它所包含的對象(修改其中一個,另外一個不會改變){copy模塊的deep.deepcopy()函數}

python 調用C代碼獲取數據,C代碼要求1個結構參數, 其中有項目是指向緩衝區的指針,如何實現參數賦值?

class stdata(Structure):

_fields_ = [(‘pBuf’, c_char_p), (‘buflen’, c_int)]

N=100

buf = create_string_buffer(N)

d = stdata()

d.buflen = N

d.pBuf = cast(buf, c_char_p)

n = CallMyCFunc_GetData(byref(d))

關鍵在於create_string_buffer創建可寫buffer;cast轉換為char*類型。

Python變量賦值的秘密分享

Python變量賦值的秘密分享

在Python中,我們令一個變量等於另外一個變量時,並不是把值傳遞給它,而是直接把指向的地址更改了。我們想要查看一個變量在內存中的地址,可以通過id(變量) 來查看。我們通過一個小例子來看看這個有趣的過程。

x = 12

y= 13

id(x)

id(y)

x = y

id(x)

id(y)

首先給x變量賦值為12,y變量賦值為13,我們用id(變量)分別查看x和y在內存中的位置。上面顯示分別為1865402384和1865402416。然後我們令x = y後,再查看一下它們在內存中的位置,發現x 和 y都指向了1865402416。由此可見,在python中,我們賦值的方式和C語言有所不同,c語言直接更改x那塊內存裡面的值,而Python直接改變x的指向,這讓我想起了指針。

我們接着嘗試一下,繼續在這裡輸入下面的代碼

y = 12

id(y)

1865402384

天!發生了什麼??y在內存中的地址又變成1865402384了,準確說,y又指向了1865402384這塊內存區域了。這樣一看,和C語言的指針還真的很像呢。

python中的賦值

如果是簡單的int 之類的賦值 樓上說的是對的

但是 如果 a 是某個對象 比如是一個list 就是另外一個情況了

x=a 開闢了兩塊內存 一個存X一個存a

y=a 同上

而恰好 x y 指向內存中的值相等 僅此而已 改變x 根本不會影響到y

但是 x=a y=x 就不一樣了

這裡y 創建了x的一個淺複製 實際是指向的同一塊內存

舉個栗子:

x=[1,2,3]

y=[1,2,3]

x[0]=4

print x 是 [4,2,3]

print y 是[1,2,3]

但是 如果是

x=[1,2,3]

y=x

x[0]=4

print x 是[4,2,3]

print y 也是[4,2,3] 因為 x y 指向的是同一塊內存

原創文章,作者:XXVUY,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/130707.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
XXVUY的頭像XXVUY
上一篇 2024-10-03 23:29
下一篇 2024-10-03 23:29

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論