а если «нужное место» (то есть наиболее комфортное для просмотра) пересекается с мертвыми зонами от дверей или окон? проблема кабелей не столь остра в наше время — существуют гибкие кабель-каналы.
как говаривал почтенный Билл Гейтс «Больше 640 Кб памяти персональным компьютерам никогда не понадобится» :)
две названные вами причины лишь два дервца в лесу. к примеру могу добавить еще пару кустиков:
1. если нет желания чтоб висящий на стене телек мозолил глаза пока он выключен, хочется замаскировать его скажем под картину
или
2. а если там поблизости (действительно) дверь/окно/шкаф, есть риск коллизий и это не очень приятно
2.
2
а у меня наоборот — первая как-то застыла а вторая нормально… хмм.
Друзья, я попробую на словах — там в общем телек на стене (первая картинка) и под кроватью (вторая) усилием мысли выезжает в заданную позицию удобную для просмотра.
Если нет — делайте локальным. Но ведь он и так уже сам по себе лишь свойство… Вон там, в 19й строке он определяется как свойство класса eBayItem. Разве можно еще локальнее? Намекните если так, буду очень признателен, если можно сделать еще локальнее то тут может и будет решение.
Как использую его далее могу только на словах рассказать потому что код на работе.., но в-кратце оно так: сначала создаю лист из объектов, у них конструктор принимает пару стрингов — первый 20-30 байт а второй 10-20 килобайт, все уникальные. Потом как в примере из книжки распараллеливаю запросы с помощью Thread и QUEUE. И через воркер в очереди запускаю методы doHTTPSRequest() готовых объектов класса eBayItem из заранее собранного листа.
После запуска очереди (от 20 до 50 параллельных соединений) все потоки корректно соединяются с сервером и получают ответ. Ответы self.data (32я строка в листинге, около 2-3 килобайта каждый) отдаются парсеру и результат складывается в отдельный лист. Собственно как я понимаю каждый объект тяжелеет на размер self.data = parseString(self.response.read()) когда завершается его тред. В листинге выше в 34й строке я ставил также del self.response но это не срабатывает. По окончании очереди на всякий случай делаю collect(). Ноль успеха. Если self.response.read() закомментировать а в self.data поместить 3-килобайтный эрзатц-ответ то питон потребляет 17 мегабайт памяти на 1000 объектов. Освобождает память и на автомате и вручную одинаково корректно. Если прогнать 1000х1000 то так и останется 17 мегабайт.
Наверное так на словах я непонятно объясняю, можно я в понедельник покажу «настоящий» листинг?