Как изменить функцию Python для удобной обработки одного, нескольких или всех параметров в словаре?Python

Программы на Python
Ответить
Anonymous
 Как изменить функцию Python для удобной обработки одного, нескольких или всех параметров в словаре?

Сообщение Anonymous »

Я хочу настроить среду в блокноте, в которой параметры хранятся в словаре parValue, и чтобы вы могли легко в блокноте изменять значения одного или нескольких параметров с помощью функции par() и позволить словарю parValue оставаться «под капотом», то есть не использоваться пользователем напрямую. Следующий скрипт установки partest.py делает это.

Код: Выделить всё

global parValue; parValue = {}

parValue['a'] = 1
parValue['b'] = 2

def par(parValue=parValue, *x, **x_kwarg):
x_kwarg.update(*x)
x_temp = {}
for key in x_kwarg.keys():
if key in parValue.keys():
x_temp.update({key: x_kwarg[key]})
else:
print('Error')
parValue.update(x_temp)
Теперь я могу писать в блокноте Jupyter

Код: Выделить всё

run -i partest.py

# Change a single parameter
par(a=1.5)

# Change two parameters
par(a=1.1, b=2.1)
Я также хочу иметь возможность изменить весь словарь parValue на parValue2 с помощью аналогичной команды

Код: Выделить всё

parValue2 = {'a':1.2, 'b':2.2}

par(parValue2)
Но это не работает. Как можно изменить функцию par(), чтобы справиться с этим?
Я знаю, что у меня в блокноте может быть команда

Код: Выделить всё

parValue.update(parValue2)
но я хочу, чтобы словарь parValue был «скрыт» для человека, использующего блокнот.
Примите во внимание некоторые идеи по улучшению функции par(), чтобы она могла справиться и с этой последней потребностью!>

Подробнее здесь: https://stackoverflow.com/questions/798 ... ers-in-a-d
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»