如何用 Python 編寫帶有輸出引數(按引用呼叫)的函式?
Python 語言中的所有引數(自變數)都按引用傳遞。這意味著,如果你在一個函式內更改某個引數所引用的內容,那麼更改也會反映在呼叫函式中。
可以透過以下方式實現此操作 -
返回結果元組
示例
在此示例中,我們將返回結果元組 -
# Function Definition def demo(val1, val2): val1 = 'new value' val2 = val2 + 1 return val1, val2 x, y = 'old value', 5 # Function call print(demo(x, y))
輸出
('new value', 6)
傳遞可變物件
示例
在此示例中,我們將傳遞一個可變物件 -
# Function Definition def demo2(a): # 'a' references a mutable list a[0] = 'new-value' # This changes a shared object a[1] = a[1] + 1 args = ['old-value', 5] demo2(args) print(args)
輸出
['new-value', 6]
傳遞並修改的字典
示例
在此示例中,我們將傳遞一個字典 -
def demo3(args): # args is a mutable dictionary args['val1'] = 'new-value' args['val2'] = args['val2'] + 1 args = {'val1': 'old-value', 'val2': 5} # Function call demo3(args) print(args)
輸出
{'val1': 'new-value', 'val2': 6}
類例項中的值
示例
在此示例中,我們將打包類例項中的值 -
class Namespace: def __init__(self, **args): for key, value in args.items(): setattr(self, key, value) def func4(args): # args is a mutable Namespace args.val1 = 'new-value' args.val2 = args.val2 + 1 args = Namespace(val1='old-value', val2=5) # Function Call func4(args) print(vars(args))
輸出
{'val1': 'new-value', 'val2': 6}
廣告