Задать вопрос

Как организовать автоматическую инициализацию классов в Python?

Описал классы, но может их вообще не нужно инициализировать? К примеру как на пэхапэ обращаться к статике? Есть такое? Просто получается, что я буду использовать свойства и методы, а экземпляры класса в виде объекта мне не нужны. Спасибо!

Кстати, видел такую штуку на пэхапэ:
где сначала инициализируется Core, а потом вызов дочерних инициализируется при вызове и помещается в массив свойства. Но на Python же нельзя пихать объекты в списки или множества...
class Core{
	// Свойства - Классы API
	private $classes = ['class'     => 'ClassName'];
	// Созданные объекты
	private static $objects = array();
	
	// Магический метод, создает нужный объект API
	public function __get($name){
		// Если такой объект уже существует, возвращаем его
		if(isset(self::$objects[$name]))
			return(self::$objects[$name]);
		// Если запрошенного API не существует - ошибка
		if(!array_key_exists($name, $this->classes))
			return null;
		// Определяем имя нужного класса
		$class = $this->classes[$name];
		// Подключаем его
		include_once('class/'.$class.'.php');
		// Сохраняем для будущих обращений к нему
		self::$objects[$name] = new $class();
		// Возвращаем созданный объект
		return self::$objects[$name];
	}
}
  • Вопрос задан
  • 385 просмотров
Подписаться 3 Оценить Комментировать
Решения вопроса 2
@deliro
stackoverflow.com/questions/12179271/python-classm...

Но на Python же нельзя пихать объекты в списки или множества...

Чёж ты сразу не сказал? Я ведь уже столько напихал...
Ответ написан
@borodaturan
Python developer
Метод класса нужно объявить статическим, тогда для его использования можно не создавать объекта класса.
class Test(object):

    @staticmethod
    def test():
        print("test")

if __name__ == "__main__":
    Test.test()
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы