xiaowei8782088 发表于 2017-4-28 07:32:53

python的传参测试

  结论:传参如果是list map 将会修改其值。这意味着list map 是引用传递的。
  而 int string 为值传递。

#!/usr/bin/dev python
import sys
import os
def FixInt(nVal):
nVal = nVal + 1;
def FixString(strVal):
strVal = strVal + '_b';   
def FixMap(map):
for key in map:
map = map + '_b';
def FixList(ls):
ls.append('1');
def PrintVal(strInfo, nVal, strVal, map, ls):
if strInfo:
print("==== %s =====" %strInfo);
print("int value:%d" %nVal);
print("string value:%s" %strVal);
print("map value:%s" %map);
print("list value:%s" %ls);
print("\n\n");   
if "__main__" == __name__:
nTmp = 0;
strTmp = "aaaa";
mapTmp = {
"aaa" : "111",
"bbb" : "222",
"ccc" : "333",
"ddd" : "444"
}
lsTmp = ['a', 'b', 'c']

PrintVal("The orgin value", nTmp, strTmp, mapTmp, lsTmp);   
FixInt(nTmp);
FixString(strTmp);
FixMap(mapTmp);
FixList(lsTmp);
PrintVal("The dst value", nTmp, strTmp, mapTmp, lsTmp);


  结果:
  ==== The orgin value =====

int value:0

string value:aaaa

map value:{'aaa': '111', 'bbb': '222', 'ccc': '333', 'ddd': '444'}

list value:['a', 'b', 'c']




==== The dst value =====

int value:0

string value:aaaa

map value:{'aaa': '111_b', 'bbb': '222_b', 'ccc': '333_b', 'ddd': '444_b'}

list value:['a', 'b', 'c', '1']
页: [1]
查看完整版本: python的传参测试