Python - пустой конструктор класса (стиль) - PullRequest
0 голосов
/ 30 мая 2019

Что такое «Pythonic» способ определения класса, который не нуждается в каких-либо параметрах конструктора?

class MyClass:

    # class body

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

class MyClass:
    def __init__:
        pass

    # class body

1 Ответ

2 голосов
/ 30 мая 2019

Ваш первый подход достаточно хорош, если только вы не хотите использовать только атрибуты класса, а не атрибуты экземпляра
Также каждый класс в 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
...