Size: a a a

Сообщество Python Программистов

2021 January 02

V

Vadim in Сообщество Python Программистов
возможно ли это сделать без init?
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
вытащи их из под инита
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
будут в С
источник

V

Vadim in Сообщество Python Программистов
если сделать вот так:
class C(A, B):
   pass

то унаследуются только методы, а не аттрибуты text и d
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
ну да. унаследует только методы и атрибуты в теле класса а не в функциях
источник

👑️

👑OGURCHIK🖤 ️ in Сообщество Python Программистов
class B:
       d = {}
вот так и д попадает в С
источник

V

Vadim in Сообщество Python Программистов
👑OGURCHIK🖤 ️
class B:
       d = {}
вот так и д попадает в С
+
источник

K

KarmaBot in Сообщество Python Программистов
Вы увеличили карму 👑OGURCHIK🖤 до 134.13 (+1.42)
источник

А

Айван in Сообщество Python Программистов
Так, только так вероятно быть не должно. Если что, на все экземпляры будет один dict
источник

V

Vadim in Сообщество Python Программистов
Айван
Так, только так вероятно быть не должно. Если что, на все экземпляры будет один dict
Что-то типа глобала для всех экземпляров данного класса?
источник

А

Айван in Сообщество Python Программистов
Вроде того. Хотя, в теории, когда-то (очень редко) в этом может быть смысл. Но обычно все мутабельные элементы лучше указывать в init, т.к. иначе нельзя будет нормально сделать два несвязанных друг с другом экземпляра
источник

V

Vadim in Сообщество Python Программистов
Айван
Вроде того. Хотя, в теории, когда-то (очень редко) в этом может быть смысл. Но обычно все мутабельные элементы лучше указывать в init, т.к. иначе нельзя будет нормально сделать два несвязанных друг с другом экземпляра
Просто не хотелось конструктор постоянно вызывать,  чтобы унаследововать аттрибуты.  А потом понял,  что итак сойдет,  не сильно захламляется код
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
Vadim
Просто не хотелось конструктор постоянно вызывать,  чтобы унаследововать аттрибуты.  А потом понял,  что итак сойдет,  не сильно захламляется код
Ты делаешь неявное вместо явного ради какой-то фигни(экономии, одной строки). Не надо так
источник

V

Vadim in Сообщество Python Программистов
Так раньше думал,  что и методы и атрибуты наследуются сразу.  Оказалось не так
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
Vadim
Так раньше думал,  что и методы и атрибуты наследуются сразу.  Оказалось не так
Методы наследуются
источник

А

Айван in Сообщество Python Программистов
Vadim
Так раньше думал,  что и методы и атрибуты наследуются сразу.  Оказалось не так
Методы то наследуются, но а как унаследовать не созданные атрибуты?)
Лучше да, просто вызвать super().__init__. Темболее, это является обычной практикой и занимает всего строку (в рамках одного класса)
источник

V

Vadim in Сообщество Python Программистов
Айван
Методы то наследуются, но а как унаследовать не созданные атрибуты?)
Лучше да, просто вызвать super().__init__. Темболее, это является обычной практикой и занимает всего строку (в рамках одного класса)
Так изначально действовал.  А для множественного наследования можно супер использовать?
Вроде читаю об этом, но явно пока не нашел
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
Vadim
Так изначально действовал.  А для множественного наследования можно супер использовать?
Вроде читаю об этом, но явно пока не нашел
Чаще всего множественное наследование для методов - ок, для аттрибутов - не ок. Таким образом ещё и инит будет только в одной ветке наследования
источник

V

Vadim in Сообщество Python Программистов
<Юрий> 👨‍🔬 Чебышев
Чаще всего множественное наследование для методов - ок, для аттрибутов - не ок. Таким образом ещё и инит будет только в одной ветке наследования
Походу проще унаследововать методы, которые собирают атрибуты)
источник

<Юрий> 👨‍🔬 Чеб... in Сообщество Python Программистов
Vadim
Походу проще унаследововать методы, которые собирают атрибуты)
Не знаю о чем ты
источник