Да, все, что произойдет, это то, что вы не сможете ссылаться на текущий экземпляр вашего класса A
(если вы не установите другую переменную на self
, прежде чем ее изменить.) Я бы не рекомендовал ее хотя это делает код менее читабельным.
Обратите внимание, что вы меняете только переменную, как и любую другую. Выполнение self = 123
- это то же самое, что и abc = 123
. self
является только ссылкой на текущий экземпляр в методе. Вы не можете изменить свой экземпляр, установив self
.
Что должен сделать func(self)
, это изменить переменные вашего экземпляра:
def func(obj):
obj.var_a = 123
obj.var_b = 'abc'
Тогда сделайте это:
class A:
def method1(self):
func(self) # No need to assign self here