Вот код для метода update
, поэтому вы можете понять, почему он ведет себя так, как он (это не настоящий исходный код, просто пример):
def update(self, other_dict={}, **kwargs):
for k, v in other_dict.items():
self[k] = v
for k, v in kwargs.items():
self[k] = v
Так что есливы звоните new_dict.update(key=val)
ваш kwargs
будет равен {"key": value}
.
Вам необходимо передать свои аргументы в словаре, если вы хотите динамически установить новые ключи.