Форум сайта python.su
1
Добрый день, имеются классы, затем один класс обрабатывает все классы методом одного класса. Вопрос как обращаться к методам класса(их много)?
class Print_all: def __init__(self, element): for this in element: print (this, end=", ") class Part_pc: def __init__(self): self.zhelezo = ["материнская плата", "процессор", "озу", "винчестер", "кейс"] class Add_to_pc: def __init__(self): self.extra = ["дисковод", "видеокарта", "звуковая карта", "принтер", "сетевая карта"] class Use_work_pc: def __init__(self): self.external = ["клавиатура", "мышь", "монитор", "наушники"] class Printer(Print_all, Part_pc, Add_to_pc, Use_work_pc): def __init__(self): word = str("word") super().__init__("hi") # обращаюсь к первостоящему классу, # он и будет обрабатывать методы остальных классов printer = Printer()
Отредактировано MetalHead (Фев. 7, 2014 11:18:51)
Офлайн
19
class A(object): def __init__(self): print 'a' class B(object): def __init__(self): print "b" class C(A, B): def __init__(self): super(C, self).__init__() class D(B, A): def __init__(self): super(D, self).__init__() class E(A, B): def __init__(self): A.__init__(self) B.__init__(self) print "init C" C() print "init D" D() print "init E" E()
Отредактировано PanovSergey (Фев. 8, 2014 14:18:03)
Офлайн
1
PanovSergey, такая ситуация, не получается этим методом обработать данные:
TypeError: __init__() missing 1 required positional argument: ‘element’
class Print_all: def __init__(self, element): for this in element: print (this, end=", ") class Part_pc(object): zhelezo = ["материнская плата", "процессор", "озу", "винчестер", "кейс"] class Add_to_pc: def __init__(self): self.extra = ["дисковод", "видеокарта", "звуковая карта", "принтер", "сетевая карта"] class Use_work_pc: def __init__(self): self.external = ["клавиатура", "мышь", "монитор", "наушники"] class Printer(Print_all, Part_pc, Add_to_pc, Use_work_pc): def __init__(self): print(Part_pc.zhelezo)# выводит var = str("world") Print_all.__init__(var) # не могу обратиться. Почему выбивает ошибку? printer = Printer()
Офлайн
19
Вам бы книжку по основам языка почитать
Только без обид, действительно нужно.
Внимательно посмотрите как у вас с классе Print_all, определен метод __init__, сколько у него параметров?
А сколько вы ему передаете? Ответьте не вопрос себе знаете ли вы что такое self и для чего его пишут первым параметром в определении методов экземпляра класса. Если после того как ответите на эти вопросы не получится пишите, помогу разобраться.
Офлайн
1
PanovSergey, при многом благодарю, понял в чем проблема. Я как бы в Python месяца 1,5, при этом не имел ранее опыта работы с другими яп. Ну, self обозначает как бы принадлежность к классу/методу. А вот книжки есть интересные, чтобы не уснуть?
Также вопрос, смотрите вывод:
print (this, end=", ")
материнская плата, процессор, озу, винчестер, кейс,
Офлайн
19
Можно ли убрать последнюю запятую, заменив другим знаком?Посмотрите метод join у строки, заменить не даст, но последнюю запятую писать не будет.
Я как бы в Python месяца 1,5, при этом не имел ранее опыта работы с другими япПоэтому и стараюсь вас направить а не дать готовое решение

книжки есть интересные, чтобы не уснуть?В книгах я совершенно некомпетентен, зайдите в соответвующую тему там 100% подскажут, а так Математика и Практика рулят
Отредактировано PanovSergey (Фев. 9, 2014 14:18:06)
Офлайн