Найти - Пользователи
Полная версия: Наследование 2
Начало » Python для новичков » Наследование 2
1
dredsss
Как сделать так, чтобы принимаемые аргументы конструктора класса 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)
Или надо делать для субклассов свои конструкторы с принимаемыми аргументами класса родителя и своими и из родителя убрать конструктор и оставить дефултный?
marvellik
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
>>>
dredsss
marvellik
Это в 3.5+ версиях обозначение для девелоперов и IDE какого типа должен быть аргумент. Это тоже, что и somearg1=0, только без значения и он обязательный
JOHN_16
dredsss
Это тоже, что и somearg1=0, только без значения и он обязательный
гениально… запомню формулировку что б новичкам объяснять. И да тут где то пролетал самолет с платкатом “сарказм”
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB