Для достижения этого поведения вы должны использовать globals()
встроенный метод :
def var_of_var(k, v):
globals()[k] = v
print variable_name # NameError: name 'variable_name' is not defined
some_name = 'variable_name'
globals()[some_name] = 123
print variable_name # 123
some_name = 'variable_name2'
var_of_var(some_name, 456)
print variable_name2 # 456
Для Eclipse, как правило, все, что вам нужно сделать, это настроить папку где-нибудь в вашем каталоге исходного кода. Например, если каталог, содержащий ваш источник, /src
, вы можете создать папку /src/resources
для размещения ваших изображений / файлов. Затем внутри вашего класса вы делаете getResource("/resources/image.png")
для его получения.
Вы также можете поместить изображение / файл в ту же папку / пакет, что и класс, пытающийся получить к нему доступ, если хотите (пример: поместите файл image.png в пакет com.mycompany
с помощью com.mycompany.Foo
класс, который должен получить к нему доступ и вызвать getResource("image.png")
), но я обнаружил, что легче хранить такие ресурсы, как изображения и другие файлы, в их собственной специальной директории за пределами папок класса - им просто проще управлять этим способом.
В Eclipse всякий раз, когда вы делаете сборку, файлы в этом каталоге ресурсов будут скопированы в ваш каталог сборки вместе с вашими скомпилированными классами.
Важно отметить, что если в Eclipse (как и большинство людей) включена функция «Build Automatically», любые ресурсы в этом каталоге, которые меняются вне Eclipse (т. е. вы редактируете изображение с помощью редактирования изображения инструмент), что среда IDE не всегда может обнаружить это изменение. Обычно обновление в папке проекта гарантирует, что файл будет обновлен в сборке в этих ситуациях.
Вы можете поместить их в папку src рядом с вашими классами, или вы можете создать новую исходную папку для этой цели (обычно называемую resources ), хотя вы будете находить их одинаково из кода.
Затем вы получите их с помощью getResource("/com/x/y/foo.png")
.