Уведомления

Группа в Telegram: @pythonsu

#1 Май 27, 2009 13:49:41

spe
От:
Зарегистрирован: 2009-05-27
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон и указатели

Ситуация такая:

Есть экземпляр класса

a = A()

я хочу забэкапить текущее состояние а

b = a – не подходит, тк копирует указатель по сути

b = A()
b = a – то же самое

Как быть? Как объяснить питону, что мне нужен не указатель, а новый экземпляр класса с аналогичным содержанием?



Офлайн

#2 Май 27, 2009 14:37:05

Cleric
От:
Зарегистрирован: 2007-06-26
Сообщения: 87
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон и указатели

Воспользуйся модулем из стандартной библиотеки - copy, пример:

import copy

class A(object):

def __init__(self):
self.x = 0


a = A()
b = copy.copy(a)
b.x = 1

print a.x, b.x
Советую сначала почитать про copy.copy и copy.deepcopy



Отредактировано (Май 27, 2009 14:39:06)

Офлайн

#3 Май 27, 2009 14:41:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Питон и указатели

Модуль copy

Офлайн

#4 Май 27, 2009 14:44:38

spe
От:
Зарегистрирован: 2009-05-27
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон и указатели

спасибо!



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version