How to keep Dict[str, List] default method parameter as local to the method?
zljubisic at gmail.com
zljubisic at gmail.com
Sun Jun 14 11:20:46 EDT 2020
Hi,
consider this example:
from typing import Dict, List
class chk_params:
def execute(self, params: Dict[str, List] = None):
if params is None:
params = {}
for k, v in params.items():
params[k] = [val + 10 for val in v]
return params.values()
params = {
'A' : [1],
'B': [2],
'C': [3],
'D': [4],
'E': [5]
}
print(params)
params_obj = chk_params()
print(params_obj.execute(params = params))
print(params)
Output is:
{'A': [1], 'B': [2], 'C': [3], 'D': [4], 'E': [5]}
dict_values([[11], [12], [13], [14], [15]])
{'A': [11], 'B': [12], 'C': [13], 'D': [14], 'E': [15]}
I expected that last print statement will show original parameters A=1, B=2... but this is not the case.
How to construct the method parameters, with params parameter as type of Dict[str, List], but at the same time keep params as local dictionary to the chk_params.execute() method?
More information about the Python-list
mailing list