python函式傳值到底傳什麼?有很多文章講過這個,但是前兩天被問到居然還是有點不清楚,有點蒙,今天就具體好好看看這個。
def test(a):a = 10
print(a)
這個函式接受乙個輸入,假設輸入20,那麼輸出10,python在傳遞引數的將20的引用傳入,然後函式體內重新賦值,新建了乙個物件10,並且將變數a的引用指向了10,這個變數存在這個函式的區域性命名空間中,在函式中使用a,先在區域性命名空間中查詢,發現a,接著進行其他操作。
def test_li(li):print li
print id(li)
print locals()
def test_li(li=):print li
print id(li)
print locals()
def main():
# a = 90
# test(20)
li = [1, 2, 3]
for i in range(10):
test_li()
如果是傳入的值是乙個列表,相對而言,列表最大的不同是列表是可變型別,對於可變型別,函式內在對列表進行操作的時候不會重新建立乙個新的列表,而是對之前的列表進行操作,傳入的是對物件的引用。引用的也是之前的物件。
jpython 傳入引數 python中引數傳遞
在程式語言中,函式的引數傳遞有兩種情況 按值型別傳遞 num 10 def double arg arg arg 2 print arg double num 呼叫該函式,傳入乙個變數,其實傳入的是該變數的乙個副本,該變數在函式中發生變化,不影響函式外面該變數。按引用型別 位址 傳遞 def cha...
檢查傳入引數
對函式傳入的引數進行檢查 1 既能提高程式的效率 2 也能使程式變得更健壯,防止程式執行時崩潰 可從以下方面入手 1 傳入指標,需檢查指標是否有效。void f char p 2 傳入的是陣列下標,對下標範圍檢查。intoperator int c iindex 當然,還有其他很多情況,對函式傳入的...
php傳入引數
專案中時常會使用php編寫指令碼,進行一些統計與批量更新的需求需要進行操作 其中使用的方式主要是getopt函式,寫法如下 opt getopt m n value m opt m value n opt n 命令列下執行的方式是php test.php m hisen n king if argc...