Class A:
def metoda(self, b):
self = copy.deepcopy(b) # L1
Linia L1 jest bledna bo tak naprawde nie zmienie obiektu klasy A,
tylko jego etykietke self, chcialbym to zrobic jakim tworem
jednolinikowym unikajac takiego recznego kopiowania:
self.a1 = copy.deepcopy(b.a1)
self.a2 = copy.deepcopy(b.2)
...
da sie jakos bo szczerze mowiac jakos nic nie przychodzi mi do glowy?
--
> chcialbym wewnatrz metody obiektu obj_a skopiowac pewien obiekt obj_b w
> miejsce obj_a, troche to nie jasne wiec symbolicznie mozna by to
[...]
> da sie jakos bo szczerze mowiac jakos nic nie przychodzi mi do glowy?
Nie, przemysl strukture programu, bo to jest bardzo nie teges. :)
--
Radomir `The Sheep' Dopieralski <http://sheep.art.pl>
self.__dict__ = obj.__dict__
self.__class__ = obj.__class__
Ale to i tak jest zle podejscie do problemu.
>
> Pewnie zadziala:
>
> self.__dict__ = obj.__dict__
> self.__class__ = obj.__class__
>
Tylko dodam ze to nie stworzy niezaleznego obiektu, tylko oba beda
mialy taka sama zawartosc, mimo ze inne adresy(wzorzec borg).