Код (1):
class User (): def __innit__(self, first_name, last_name): self.first_name = first_name self.last_name = last_name def greeting_user(self): print(f'Hello, {self.first_name} {self.last_name}') def describe_user (self): print(f'Fst. name: {self.first_name}, Snd. name: {self.last_name}') class Admin (User): def __init__(self, first_name, last_name): super().__init__(self, first_name, last_name) self.privileges = ['can ban users', 'can delete users'] def show_privileges (self): for privilegue in self.privileges: print(f"Admin's priveleges {privilegue}") admin_1 = Admin('Ivan', 'Ivanov') admin_1.show_privileges() admin_1.greeting_user()
Traceback (most recent call last): File "D:\PProjects\Python_learning\main.py", line 16, in <module> admin_1 = Admin('Ivan', 'Ivanov') File "D:\PProjects\Python_learning\main.py", line 11, in __init__ super().__init__(self, first_name, last_name) ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: object.__init__() takes exactly one argument (the instance to initialize)
В ошибке пишет, что нужен только один аргумент, но если использовать следующий код, то нужно уже два…
Код (2):
class User (): def __innit__(self, first_name, last_name): self.first_name = first_name self.last_name = last_name def greeting_user(self): print(f'Hello, {self.first_name} {self.last_name}') def describe_user (self): print(f'Fst. name: {self.first_name}, Snd. name: {self.last_name}') class Admin (User): def __init__(self, first_name, last_name): super().__init__(self, first_name, last_name) self.privileges = ['can ban users', 'can delete users'] def show_privileges (self): for privilegue in self.privileges: print(f"Admin's priveleges {privilegue}") admin_1 = Admin() admin_1.show_privileges() admin_1.greeting_user()
Ошибка (2):
Traceback (most recent call last): File "D:\PProjects\Python_learning\main.py", line 16, in <module> admin_1 = Admin() TypeError: Admin.__init__() missing 2 required positional arguments: 'first_name' and 'last_name'
P.S. Переделал, не знал просто как оформлять, надеюсь так правильно.
