Python dictionaryの参照渡し

Pythonのdictionaryの参照渡しについて、記載する これを使用することで、関数の返り値に明示的に指定しなくても 変数の受け渡しが可能である。 ただし、可読性が悪い気がする

ソースコード

def test_dict(d_func):
    for rsrc_key, rsrc_info in d_func.items():
        # print(rsrc_key, rsrc_info)
        rsrc_info['key1'] = 10

d = {"1": {'key1': 1, 'key2': 2, 'key3': 3}, "2" : {'key1': 4, 'key2': 5, 'key3': 6}}

print('before: {}'.format(d))
test_dict(d)
print('after: {}'.format(d))

実行結果

before: {'1': {'key1': 1, 'key2': 2, 'key3': 3}, '2': {'key1': 4, 'key2': 5, 'key3': 6}}
after: {'1': {'key1': 10, 'key2': 2, 'key3': 3}, '2': {'key1': 10, 'key2': 5, 'key3': 6}}

関数実行後のafterに'key1': 10 が代入されていることがわかる