Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 27, 2018 19:14:26

dredsss
Зарегистрирован: 2018-10-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Наследование 2

Как сделать так, чтобы принимаемые аргументы конструктора класса A

 class A:
    def __init__(self, somearg1: int):
        self.arg1 = somearg1
При наследовании перенеслись в субкласс B
 class B(A):
    def __init__(self, somearg2: int):
        self.arg2 = somearg2
 >> b = B(20)  # only somearg2
Traceback ....
.......
__init__ takes 2 arguments, it was given only 1 (somearg1, somearg2)
Или надо делать для субклассов свои конструкторы с принимаемыми аргументами класса родителя и своими и из родителя убрать конструктор и оставить дефултный?

Офлайн

#2 Окт. 27, 2018 19:34:19

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Наследование 2

dredsss
(self, somearg1: int)
странные у вас аргументы
 class A:
    def __init__(self, somearg1):
        self.arg1 = somearg1
        
class B(A):
    def __init__(self, somearg1, somearg2):
        super().__init__(somearg1)
        self.arg2 = somearg2
        
b = B(20,30)
print(b.arg1,b.arg2)
 20 30
>>>

Отредактировано marvellik (Окт. 27, 2018 19:42:11)

Офлайн

#3 Окт. 27, 2018 19:56:52

dredsss
Зарегистрирован: 2018-10-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

Наследование 2

marvellik
Это в 3.5+ версиях обозначение для девелоперов и IDE какого типа должен быть аргумент. Это тоже, что и somearg1=0, только без значения и он обязательный

Офлайн

#4 Окт. 28, 2018 09:37:58

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Наследование 2

dredsss
Это тоже, что и somearg1=0, только без значения и он обязательный
гениально… запомню формулировку что б новичкам объяснять. И да тут где то пролетал самолет с платкатом “сарказм”



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version