Найти - Пользователи
Полная версия: Немного про списки (lists)
Начало » Python для новичков » Немного про списки (lists)
1
ice
Доброго времени суток.

Вот у меня есть один список. Он глобален и не должен подвергаться изменению. Он - образец.

Теперь мне нужно в конструкторе объекта делать его копию в локальное поле этого объекта.
Я правильно понимаю, что вариант

self.main_list = MAIN_LIST - не работает, потому что это просто ссылка будет и все изменения будет глобальны?

То есть нужно делать:

self.main_list =

так? это единственный способ?
И как мне защитить глобальный лист от себя самого? Как вариант придумал его обернуть в свой класс, где перекрыл операторы; на сколько этот вариант правилен?
ZAN
Просто вместо list используй неизменяемый tuple.
ZAN
Любой изменяемый объект можно безопасно копировать при помощи функции deepcopy из модуля copy.
Просто список можно копировать еще такими способами:
a =
b = a
b = list(a)
Кстати, эти два способа работают аналогично функции copy (swallow copy instead of deep) из модуля copy.
ice
Во, спасибо больше :) остановился на варианте с кортежем и приведением его к листу
main_list = list(MAIN_LIST)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB