Я не уверен, что это уже здесь, если да, то мне очень жаль.
Я пытаюсь поместить вывод переменной, в данном случае строку, в другое «имя» переменных, если оно так называется, но использование exec не идеально, и я не хочу помещать все это в функцию exec.
Есть ли способ сделать то, что я пытаюсь сделать в этом коде?
world = world[(x,y)].type
exec("if blocks." + world + ".hasUp == True:")
tick(taX,taY)
У переменной нет вывода. Не могли бы вы перефразировать свой вопрос и прояснить, что это за переменные и что вы имеете в виду, помещая выходные данные переменной в "имя" другой переменной?
Не могли бы вы объяснить это поподробнее?
Это X / Y Проблема - вы пытаетесь обойти какую-то неизвестную проблему и теперь спрашиваете, можем ли мы исправить это плохое решение. Пожалуйста, добавьте еще свой код.
в дополнение к тому, что сказал usr2564301, похоже, вы пытаетесь создать переменную / свойство динамически, и это намекает на плохой дизайн






Используйте __dict__:
>>> def foo():
... pass
...
>>> a = "hello"
>>> foo.__dict__[a] = "world"
>>> foo.hello
'world'
globals() для глобальной переменной (возвращает словарь глобальных переменных):
>>> name = "may"
>>> globals()[name] = "the force be with you"
>>> may
'the force be with you'
locals() для локальной переменной:
>>> name = "life"
>>> locals()[name] = "was like a box of chocolates"
>>> life
'was like a box of chocolates'
Очень непонятно, но если я понимаю, что вы пытаетесь сделать, используйте не
exec, аgetattr. (практическое правило: никогда используйтеexecилиeval)