pythonはC言語のような関数パラメータの参照を実現する.
1226 ワード
pythonにはパラメータの必要性があり、Cのようにパラメータ(参照)設計もないようで、関数の戻り値を変形して実現することができます.
この方法はあまりきれいではありません.他の方法を採用することもできます.
1)上で述べた関数の戻り値は,元祖の戻り方といえる.
2)変更可能なオブジェクト(list)による
3)辞書(dict)による
4)クラスを通過するオブジェクト
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