Python - конструктор пустого класса (стиль)

Что такое «Pythonic» способ определить класс, которому не нужны параметры конструктора?

class MyClass:

    # class body

или нам нужен явный конструктор? то есть

class MyClass:
    def __init__:
        pass

    # class body

Второй.

Harsha Biyani 30.05.2019 11:04

@Харша Почему...?

deceze 30.05.2019 11:04

Создается ли экземпляр класса без ошибок, если вы полностью опускаете __init__? (Да, это так.) Тогда вы не нужно это.

deceze 30.05.2019 11:05

@HarshaBiyani Метод __init__ требует как минимум self в качестве параметра, поскольку это метод экземпляра.

N Chauhan 30.05.2019 11:12

@deceze Достаточно честно. Я думал, что, возможно, «Явное лучше, чем неявное», как в PEP20 — The Zen of Python (python.org/dev/peps/pep-0020)

Tomasz Bartkowiak 30.05.2019 11:12

Явно опускать __init__ лучше, чем неявно состоять только из pass… ;)

deceze 30.05.2019 11:13
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
3
6
2 326
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш первый подход достаточно хорош, если вы не хотите использовать только атрибуты класса, а не атрибуты экземпляра
Также каждый класс в Python наследуется от объекта, как подробно описано здесь

class MyClass:
    pass

Примером таких классов может быть следующий

  • Класс для хранения нескольких атрибутов класса
class MyClass:

    a = 1
    b = 2

print(MyClass.a)
#1
print(MyClass.b)
#2
  • Пользовательское исключение, в котором конструктор неявно берется из базового класса.
class MyException(Exception):

    pass

raise MyException
#    raise MyException
#__main__.MyException

Может стоит привести пример? Например, настраиваемые типы исключений обычно определяются таким образом.

Adam Smith 30.05.2019 11:08

Спасибо, вы можете проверить мое обновление и посмотреть, имеют ли смысл два примера @AdamSmith :), и дайте мне знать

Devesh Kumar Singh 30.05.2019 11:14

Другие вопросы по теме