Как создать несколько пустых классов в одном объявлении?

1

Поскольку мы можем создать несколько переменных в одной строке, например:

x, y, z = 1, 2, 3
print(x)

и выход будет равен 1,

Интересно, есть ли что-то подобное для создания нескольких пустых классов, поэтому что-то вроде этого, о котором я знаю, неверно, но просто чтобы вы поняли, что я имею в виду:

class X, Y, Z:
    pass

Большое спасибо!

  • 0
    Я не думаю, что это имеет смысл, поскольку класс - это абстрактная вещь. Три одинаковые абстрактные вещи можно выделить как одно.
Теги:
class

1 ответ

5
Лучший ответ

Нет, нет специального синтаксиса для использования определения класса таким образом. Вы можете использовать конструктор type, например:

>>> A, B, C = type('A', (object,), {}), type('B', (object,), {}), type('C', (object,), {})
>>> A, B, C
(<class '__main__.A'>, <class '__main__.B'>, <class '__main__.C'>)
>>>
>>> A()
<__main__.A object at 0x10354d780>
>>> B()
<__main__.B object at 0x1038b1ef0>
>>> C()
<__main__.C object at 0x10354d780>

Но я думаю, что это вряд ли элегантно, и вряд ли вы сможете сохранить единственную линию до разумной длины. Просто придерживайтесь определений полного класса.

  • 0
    Хорошо, я вижу смысл. Спасибо за ваш подробный ответ.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню