最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 中的參數傳遞、返回值、淺拷貝、深拷貝

 更新時間:2019年06月25日 09:39:49   作者:LogM  
這篇文章主要介紹了Python 中的參數傳遞、返回值、淺拷貝、深拷貝,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

1. Python 的參數傳遞

Python的參數傳遞,無法控制引用傳遞還是值傳遞。對于不可變對象(數字、字符、元組等)的參數,更類似值傳遞;對于可變對象(列表、字典等),更類似引用傳遞。

def fun1(n):
  print(n)  # n在沒修改前,指向的地址和main函數中n指向的地址相同
  n = 20   # n在修改后,指向的地址發(fā)生改變,相當于新建了一個值為20的參數n
def fun2(l):
  print(l)  # l在沒修改前,指向的地址和main函數中l(wèi)指向的地址相同
  l = [5,6,7,8,9] # l在修改后,指向的地址和main函數中l(wèi)指向的地址仍相同,此時main函數中l(wèi)的值也會改變
if __name__=="__main__":
  n = 10
  l = [1,2,3,4,5]
  fun1(n)
  fun2(l)
  print(n)  # n的值還是10
  print(l)  # l的值在fun2()中已經被改變

2. Python 的返回值

Python的返回值,無法控制引用傳遞還是值傳遞。對于不可變對象(數字、字符、元組等)的參數,更類似值傳遞;對于可變對象(列表、字典等),更類似引用傳遞。

str1 = 'hi'
l1 = [1,2,3,4,5]
def fun1():
  return str1
def fun2():
  return l1
str2 = fun1() # 此時,str1 和 str2 的指向地址是相同的
str2 = 'hello' # 修改后,str2 指向的地址發(fā)生改變,相當于新建了一個值為`hello`的變量
l2 = fun2() # 此時,l1 和 l2 的指向地址是相同的
l2 = [6,7,8,9] # 修改后,l2 指向的地址仍相同,修改 l2 會影響到 l1

3. Python 的淺拷貝和深拷貝

對于不可變對象(數字、字符、元組等),直接賦值的結果和深拷貝一致;對于可變對象(列表、字典等),直接賦值、淺拷貝、深拷貝結果不同。

# 不可變對象(數字、字符、元組等)的例子
a = 100 
b = a
b = 30
print('a: ', a)
print('b: ', b)
# 結果:
# a = 100
# b = 30
# 可變對象(列表、字典等)的例子
import copy
dict1 = {1:1, 'user':'test', 'num':[1, 2, 3]}
dict2 = dict1 # 直接賦值,兩個字典指向地址一致
dict3 = dict1.copy() # 淺拷貝,只拷貝到原對象
dict4 = copy.deepcopy(dict1) # 深拷貝,除了拷貝原對象,也會拷貝子對象
dict1[1] = 11
dict1['user'] = '123'
dict1['num'].remove(1)
print('原字典修改后:',dict1)
print('直接賦值:',dict2)
print('淺拷貝:',dict3)
print('深拷貝:',dict4)
# 結果
# 原字典修改后:{1:11,'user': '123', 'num': [2, 3]}
# 直接賦值:{1:11,'user': '123', 'num': [2, 3]}
# 淺拷貝:{1:1,'user': 'test', 'num': [2, 3]}
# 深拷貝:{1:1,'user': 'test', 'num': [1, 2, 3]}

總結

以上所述是小編給大家介紹的Python 中的參數傳遞、返回值、淺拷貝、深拷貝,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

相關文章

  • python對文件目錄的操作方法實例總結

    python對文件目錄的操作方法實例總結

    這篇文章主要介紹了python對文件目錄的操作方法,結合實例形式總結分析了Python針對文件目錄相關的遍歷、刪除、移動、查找等操作技巧,需要的朋友可以參考下
    2019-06-06
  • 使用Python實現橋接模式的代碼詳解

    使用Python實現橋接模式的代碼詳解

    橋接模式是一種結構型設計模式,它將抽象部分與其實現部分分離,使它們都可以獨立地變化,本文將給大家介紹如何使用Python實現橋接模式,需要的朋友可以參考下
    2024-02-02
  • Python列表轉換為Excel表格第一列的方法詳解

    Python列表轉換為Excel表格第一列的方法詳解

    在數據處理和分析的過程中,我們經常需要將Python中的數據結構(如列表)導出到Excel表格中,本文為大家整理了Python列表轉換為Excel表格第一列的幾種方法,希望對大家有所幫助
    2024-11-11
  • python2.7 mayavi 安裝圖文教程(推薦)

    python2.7 mayavi 安裝圖文教程(推薦)

    下面小編就為大家?guī)硪黄猵ython2.7 mayavi 安裝圖文教程(推薦)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • python實現求兩個字符串的最長公共子串方法

    python實現求兩個字符串的最長公共子串方法

    今天小編就為大家分享一篇python實現求兩個字符串的最長公共子串方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python線程創(chuàng)建和終止實例代碼

    Python線程創(chuàng)建和終止實例代碼

    這篇文章主要介紹了Python線程創(chuàng)建和終止實例代碼,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • python列表推導式實現找出列表中長度大于5的名字

    python列表推導式實現找出列表中長度大于5的名字

    這篇文章主要介紹了python列表推導式實現找出列表中長度大于5的名字,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 通過Python來使用七牛云存儲的方法詳解

    通過Python來使用七牛云存儲的方法詳解

    這篇文章主要介紹了通過Python來使用七牛云存儲的方法詳解,七牛云存儲是國內領先的服務器數據備份解決方案商,需要的朋友可以參考下
    2015-08-08
  • 跟老齊學Python之不要紅頭文件(1)

    跟老齊學Python之不要紅頭文件(1)

    紅頭文件,是某國特別色的東西,在python里不需要,python里要處理的是計算機中的文件,包括文本的、圖片的、音頻的、視頻的等等,還有不少沒見過的擴展名的,文件,在python中,是一種對象,就如同已經學習過的字符串、數字等一樣。
    2014-09-09
  • python入門教程之基本算術運算符

    python入門教程之基本算術運算符

    這篇文章主要給大家介紹了關于python入門教程之基本算術運算符的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11

最新評論

赤城县| 石家庄市| 腾冲县| 务川| 嘉兴市| 邢台县| 喀喇| 石林| 鲁甸县| 象山县| 上栗县| 芒康县| 堆龙德庆县| 华池县| 隆尧县| 富源县| 监利县| 余姚市| 靖州| 定边县| 婺源县| 海宁市| 洛川县| 沙洋县| 耿马| 哈尔滨市| 宕昌县| 汉川市| 西安市| 孙吴县| 黎平县| 乡城县| 石柱| 临邑县| 井冈山市| 固原市| 元氏县| 肥西县| 宁强县| 饶阳县| 新河县|