【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
生活随笔
收集整理的這篇文章主要介紹了
【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
傳值調用最顯著的特征就是被調用的函數內部對形參的修改不影響實參的值。
引用調用是將實參的地址傳遞給形參,使得形參的地址就是實參的地址。
(對于python而言,普通的實參傳個變量(或常量)進去就相當于以上說的傳值)
python:
和其他語言不一樣,傳遞參數的時候,python不允許程序員選擇采用傳值還是傳引用。Python參數傳遞采用的肯定是“傳對象引用”的方式。
實際上,這種方式相當于傳值和傳引用的一種綜合。如果函數收到的是一個可變對象(比如字典或者列表)的引用,
就能修改對象的原始值--相當于通過“傳引用”來傳遞對象。如果函數收到的是一個不可變對象(比如數字、字符或者元組)的引用,
就不能直接修改原始對象--相當于通過“傳值’來傳遞對象。
例如:
傳遞數字時,在函數內部是不能改變它在外部的值的,但是若傳的是列表之類的,在函數內部可以調用列表方法來改變它外部的值(但是使用“=”賦值也是沒法改變的)
在函數內使用global關鍵字可以更改外部的值:
def fo1(num):global num1num1=num+1print(num1) # 2if __name__ == "__main__": num1=1fo1(num1)print(num1)結果:
2 2參考文章:python實現在函數中修改變量值的方法
總結
以上是生活随笔為你收集整理的【中级软考】函数参数传递传值与传引用的区别(global关键字,函数内定义全局变量)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python里有常量吗?(没有,但可自行
- 下一篇: 机器学习中什么是端到端的训练方法(端到端