Python

Классы в Питоне

Куда мне еще аргумент впихать

class REA:
def __init__(Apartment, Owner, Price, Area):
Apartment.Owner = Owner
Apartment.Price = Price
Apartment.Area = Area


class Transaction(REA):
def __init__(Apartment, Desctiption):
super().__init__(Owner, Price, Area)
Apartment.Description = Description

Seller = REA('Алексей Генадьевич Воронов', 1000000, 50)
CustomTransaction = Transaction(Seller, 'Продается!')
Ismayil Ismayilov
Ismayil Ismayilov
93
Во первых адекватные люди для указания на текущий объект класса не выдумывают никаких "Apartment", а пишут нормальное слово self.
Во вторых вот пример цепочки наследований в которой нет никаких ошибок с количеством передаваемых аргументов
 class Person: 
def __init__(self,city):
self.city = city

def location(self):
return f'Место проживания - {self.city}'


class Teacher(Person):
def __init__(self,city,name,subject_at_school):
super().__init__(city)
self.name = name
self.subject_at_school = subject_at_school

def action(self):
return f'{self.name} преподает предмет {self.subject_at_school}'

class Director(Teacher):
def __init__(self,city,name,subject_at_school,age):
super().__init__(city,name,subject_at_school)
self.age = age

def job_title(self):
return f'{self.name} - директор школы и учитель предмета {self.subject_at_school}. Ему {self.age} лет. Он живет в городе {self.city}'

t = Teacher('Москва','Иван Иванович', 'математика')
d = Director('Москва','Николай Григорьевич', 'физика',50)


print(t.location())
print(d.action())
print(d.job_title())
print(d.location())
Вадя** *
Вадя** *
5 840
Лучший ответ
 class REA:   
def __init__(self, Owner, Price, Area):
self.Owner = Owner
self.Price = Price
self.Area = Area


class Transaction(REA):
def __init__(self, Apartment, Description):
super().__init__(Apartment.Owner, Apartment.Price, Apartment.Area)
self.Description = Description

Seller = REA('Алексей Генадьевич Воронов', 1000000, 50)
CustomTransaction = Transaction(Seller, 'Продается!')
а ну дык это долгая история
все обьектные методы в питонище начинаются с агрумента (self
тоесть на каком экземпляре он вызван
ты же написал классметоды без self их нельзя вызвать на экземпляре а только на классе
тоесть и создать экземпляр нельзя
__init__ всегда начитаеться с селфа
напиши
def __init__(self, Apartment, Desctiption):
super().__init__(Owner, Apartment.Price, Apartment.Area)
Apartment.Description = Description
ну а дескрипшон ты потеряешь
надо еще кудато его сохранить


все это сделано потому что классов не существует а все методы лежать в одной куче, и на каком классе он живет питон понимает по перегрузке первого агрумента. а статическим методам пофиг и они без селфа. Н асмом деле это прикольно потомучто джава и плюсы работают также но это явно не видно как тут
!!!mag@!!! Махсотов
!!!mag@!!! Махсотов
17 648