Привет, я новичок в OOP и python. В настоящее время я пытаюсь увеличить переменную User Id из дочернего класса, когда создаю экземпляр родительского класса с использованием наследования, t, похоже, распознает переменную Id из своего родительского класса. Пример здесьПытается увеличивать переменную на ее наследование python
class User:
_ID = 0
def __init__(self, name):
self.name = name
self.id = self._ID
self.__class__._ID += 1
class Customer(User):
def __init__(self, name):
def lastname(self):
return "self.name.split()[-1]"
Если я сделать я могу получить доступ к атрибуту класса
>> Chris = User("Christopher Allan")
>> Chris.id
>> 0
Когда я пытаюсь запустить
>> Andy = Customer('Andy Smith')
>> Andy.id
>> Traceback (most recent call last):
File "<pyshell#83>", line 1, in <module>
Andy.id
AttributeError: 'Customer' object has no attribute 'id'
Update
я завершил остальное класса клиента, который был причиной того, что код не работает для меня , извините за то, что люди, которых я использовал, проходили раньше, так как для краткости вопроса я не тестировал, что он будет работать с проходом в классе Customer.
не может воспроизвести, кажется работать отлично для меня. Какая версия python? – lemonhead
Вместо 'self .__ class __._ ID + = 1' Я бы использовал' User._ID + = 1'. – pasztorpisti
Значит, вы определенно не переопределяете '__init__' в классе' Customer'? – 101