Найти - Пользователи
Полная версия: Exec в проектах
Начало » Python для новичков » Exec в проектах
1
noob_saibot
Добрый день.

Подскажите, стоит ли использовать подобные связки?
 for a in range(1, N):
    exec("""l_hid{0} = lasagne.layers.DenseLayer(
    l_hid{1}, num_units={2},
    nonlinearity=lasagne.nonlinearities.{3},
    W=lasagne.init.Constant(0.5))""".format(a, a-1, b, c))
Основной акцент на exec. При динамическом создании переменных (либо как в примере экземпляров класса), exec используют или есть альтернатива, или если возникает такая необходимость то неверная архитектура в проекте?
doza_and
noob_saibot
есть альтернатива
да есть - обращаться к словарям описания переменных с использованием locals, globals.
Iskatel
doza_and
да есть - обращаться к словарям описания переменных с использованием locals, globals.

Отчасти присоединюсь к вопросу, насколько это юзабельно и где может применяться?

Не припомню чтоб в других языках переменные можно было создавать на ходу…
noob_saibot
doza_and
да есть - обращаться к словарям описания переменных с использованием locals, globals.
Я кажется не то в гугле ищу, будьте любезны киньте в меня ссылкой.
noob_saibot
doza_and
https://docs.python.org/3/library/functions.html#globalshttps://docs.python.org/3/library/functions.html#localshttps://docs.python.org/3/library/stdtypes.html#object.__dict__
Окей, спрошу по другому, каким образом - словарям описания переменных с использованием locals, globals. - мне поможет решить вопрос с динамическим созданием переменных.

PS. Я немного код подправил в теме.

FishHook
noob_saibot
Окей, спрошу по другому, каким образом - словарям описания переменных с использованием locals, globals. - мне поможет решить вопрос с динамическим созданием переменных.
Динамически создавать глобальные переменные не следует! Если вам это понадобилось, значит вы плохо продумали структуру вашей программы. Создавайте (если уж так хочется) атрибуты классов или объектов.
noob_saibot
FishHook
Спасибо понял.
scidam
? Динамические создадутся x0, x1, etc, или я что-то не понял?

 for k in range(10):
    locals()['x%s' % k] = YourClass(x=getattr(something,'attr%s'%k, alternative_value), y=k)
noob_saibot
scidam
? Динамические создадутся x0, x1, etc, или я что-то не понял?
Да, спасибо.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB