Форум сайта python.su
294
Kasta_nedaм-м-м- никак, у вас out_text @classmethod, он оперирует не инстансами класса , а самим классом, а “х” у вас атрибут истанса
как мне обратиться к self.x ?
Kasta_nedaну тут есть несколько варинтов. Например вот так:
я понять хочу как правильно делать. в таких ситуациях
class A: def __init__(self, other_obj): self.other_obj = other_obj def work(self): self.other_obj.out_text('blah-blah') class B: def __init__(self): self.x = '1' def out_text(self, data, *args): print(self.x, data) b=B() a= A(b) a.work() >>> 1 blah-blah >>>
class A: def __init__(self, other_obj): self.other_obj = other_obj def work(self): self.other_obj.out_text('blah-blah') class B: def __init__(self): self.x = '1' def run(self): a=A(self) a.work() def out_text(self, data, *args): print(self.x, data) b=B() b.run() >>> 1 blah-blah >>>
[code python][/code]
Отредактировано PEHDOM (Май 25, 2020 21:52:02)
Офлайн
568
Kasta_neda
Ваш код аналогичен вот этому.
class A: def work(self): out_text(self, 'blah-blah') def out_text(data, *args): print(data, args)
Офлайн
6
PEHDOM
FishHook
AD0DE412
xam1816
Спасибо всем за помощь!
Офлайн
124
class A: def work(self): B.out_text(self, 'blah-blah') class B: x = '3' def __init__(self): self.x = '1' @classmethod def out_text(cls, data, *args): print(cls, data, args) print(cls.x) # как мне обратиться к self.x ? a = A() a.work()
Офлайн
294
xam1816да все правильно.
если указать в классе В аргумент ‘х’ то cls.x = 3
если написать cls().что означает создать экземпляр то cls().x = 1
Я начинающий,поправьте,если не правильно понимаю
[code python][/code]
Офлайн