Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
9 / 9 / 8
Регистрация: 24.10.2013
Сообщений: 215

Магия с объектами и списками

13.07.2015, 17:41. Показов 682. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Имею класс, полем которого является список __items__:
При добавлении элемента в этот список (элемент того же класса) происходит следующее:
Python
1
2
3
4
print(self is obj)
print('before',obj.__items__)
self.__items__.append(obj)
print('after',obj.__items__)
происходит такой вывод:
Bash
1
2
3
False
before []
after [<Struct.Section object at 0x936b1cc>]
Как это получается?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.07.2015, 17:41
Ответы с готовыми решениями:

Работа с объектами - списками
Имеется упорядоченный список рабочих одного цеха. Список этот введен и сохранен в некотором файле. Известно, что каждый из рабочих должен...

Таблица врачей со списками и объектами
Таблица враче ФИО, специальность, номер кабинета. чтение, и отображение, добавление по одной записи(ФИО, специальность, номер кабинета)...

Магия if
В коде под спойлером происходит магия, которая мне неведома. Чайлды являются &lt;li&gt; списка &lt;ul id=&quot;kafbuf&quot;&gt; fak...

4
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.07.2015, 17:56
Ryder95, Покажи весь, код, что там у тебя за класс.
0
9 / 9 / 8
Регистрация: 24.10.2013
Сообщений: 215
13.07.2015, 18:28  [ТС]
Здравствуйте ещё раз!
Я поспешил с вопросом на этом форуме, оставалось все 20 минут лазанья по документациям.
Вот в чём причина:
Класс выглядит таким образом:
Python
1
2
3
4
5
6
class Class:
    pole1=...
    pole2=...
    __items__=[]
   def ...
   def ...
Как оказалось, данные поля при таком объявлении являются общими полями для всех объектов класса Class. Скажем так, это как статичное поле класса в Java.
Решил проблему таким образом: инициализацию каждого поля я перенёс в def __init__(self), включая и __items__
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
13.07.2015, 19:44
Цитата Сообщение от Ryder95 Посмотреть сообщение
при таком объявлении являются общими полями для всех объектов класса
Ну естественно, это называется атрибут класса.
Цитата Сообщение от Ryder95 Посмотреть сообщение
включая и __items__
Ты в курсе, что это обозначение для спец. методов и атрибутов. Их просто так не используют. Для каких целей ты список хранишь в такой переменной?
0
 Аватар для ivlevdenis
21 / 34 / 14
Регистрация: 23.07.2014
Сообщений: 148
13.07.2015, 19:45
Так я думаю лучше будет:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import weakref
 
class SomeClass(object):
    __instances__ = []
    name = None
    desc = None
 
    def __init__(self, name, desc=None):
        self.__class__.__instances__.append(weakref.proxy(self))
        self.name = name
        self.desc = desc
 
 
first_inst = SomeClass('first_inst')
second_inst = SomeClass('second_inst')
 
for inst in SomeClass.__instances__:
    print(inst.name)
 
for inst in first_inst.__instances__:
    print(inst.name)
 
for inst in second_inst.__instances__:
    print(inst.name)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.07.2015, 19:45
Помогаю со студенческими работами здесь

Магия JS
Добрый день, у меня есть сервис, который хранит коллекцию элементов. Есть Компонент, который их отображает. Часть логики сервиса export...

Магия ip
Здрасте ,О,Админы! Мой маленький мозг просить помощи у вас! В сети на некоторых машинах если адрес ip ниже 200 (192.168.1.44 к примеру)...

Магия
Подскажите, у меня много вкладок и некоторые из них формируются динамически из SQL, но есть которые и через Delphi и вот прошло пол года и...

Магия с if..else
Здравствуйте. Начал изучать питон, есть опыт программирования на других языках. Столкнулся с не понятной мне проблемой, укажите ошибку. ...

Магия ComboBoxes
Здравствуйте. на форме согласно таблице должно быть 2 comboboxa, проблема в том что 2 сразу работать не хотят. если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru