python 像C語言樣的函式引數引用實現..
阿新 • • 發佈:2019-02-04
python中有傳參需求,好像也沒有像C一樣傳參(引用)設計,可以採用一種變形方式,函式返回值來實現。
def test(): t1 = "123123" t2 = "test" t3 = 122 t4 = 1.12 return t1, t2, t3, t4 t1, t2, t3, t4 = test() print t1, t2, t3, t4
這種方式不是很好看,還可以採用其他的方法:
1) 上面說的函式返回值,可以說成使用元祖返回的方式。
2)通過可變化的物件(list)
def func1(a): a[0] = 'new-value' # 'a' references a mutable list a[1] = a[1] + 1 # changes a shared object
3) 通過字典(dict)def func3(args): args['a'] = 'new-value' # args is a mutable dictionary args['b'] = args['b'] + 1 # change it in-place
4)通過類的物件class callByRef: def __init__(self, **args): for (key, value) in args.items()://args是個dict setattr(self, key, value)//相當於 self.key=value def func4(args): args.a = 'new-value' # args is a mutable callByRef args.b = args.b + 1 # change object in-place args = callByRef(a='old-value', b=99) func4(args) print args.a, args.b