Наследовать от встроенного класса - PullRequest
2 голосов
/ 26 декабря 2010

Я хотел бы добавить несколько методов к объекту datetime.datetime.Кажется, что мы можем сделать это только путем наследования и добавления этого нового метода.Проблема в том, что этот метод должен обновлять значения дня / месяца / года базового класса, и что я не могу вызвать метод init init с новыми параметрами.

Как я могу это сделать?*

1 Ответ

2 голосов
/ 26 декабря 2010

Вы можете вызвать метод базового класса __init__.

class Foo(datetime.datetime):
    def __init__(self, argument):
         datetime.datetime.__init__(self, argument)

Ключевым моментом здесь является то, что вам нужно явно вызвать метод __init__ и вам нужно вручную предоставить первый self аргумент, который Python обычно предоставляет для вас.

Кроме того, не забывайте о методах вызова * и **, чтобы перехватывать аргументы, с которыми вы не хотите иметь дело вручную, но которые все еще хотите иметь возможность передавать родительскому конструктору.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...