Я пытаюсь создать класс ImageLoader обрабатывать загрузку и обработку ресурсов изображений следующим образом:
class ImageLoader:
TileTable = __loadTileTable('image path', some other variable)
@staticmethod
def _loadTileTable(arg1, arg2):
blah blah
однако при компиляции я получаю: NameError: имя '_loadTileTable' не определено
Если я заменю вторую строку на TileTable = ImageLoader. __loadTileTable ('image path', некоторая другая переменная)
, тогда я получаю NameError: имя 'ImageLoader' не определено
Когда я перехожу с C # на Python, статические классы со статическими методами - вот что я буду использовать для реализации этого. Тем не менее, я открыт для того, чтобы сделать это в целом на Python (то есть Прочитав оба ответа, я понимаю, что то, что я пытаюсь сделать, вероятно, неправильно. Как мне внедрить ImageLoader, чтобы я мог это сделать:
Предполагая, что таблица плиток вернула массив
module1.py
aTile = ImageLoader.TileTable[1]
module2.py
anotherTile = ImageLoader.TileTable[2]
, в идеале я бы заполнял TileTable только один раз.
Обновление:
Спасибо за все ответы, я нашел свой последний ответ на заполнение TileTable только один раз в модулях python doco
«Модуль может содержать исполняемый файл. операторы, а также функция определения. Эти заявления предназначен для инициализации модуля. Выполняются только с первого раза модуль куда-то импортирован "
Что касается статического класса, я собираюсь отказаться от классов и просто сделать переменную уровня модуля.