Yuri Shikanov:
import * - штатное решение, хотя я сам предпочитаю так не делать.
В данном случае этот хинт - самый короткий, чтобы попытаться запуститься топикстартеру.
Ну извините, вырвалось - глядя на процитированное )
Но моё мнение всё тоже - гораздо продуктивнее набить руку на синтаксе питона и осваивать его библиотеки (кстати, прекрасно документированные), чем метаться между питоном и руби.
Imbecil:
балансировщик напряжения - источник бесперебойого питания, ИБП,
Идите на сайты ваших местных сборщиков компов, у них всех есть калькуляторы цены сборного компа - выбирайте, что хотите, выкладывайте выбраное - покритикуем.
Что останется от старичка:
корпус (цена - от $20, цены московские)
блок питания (плохая идея, но можно - от $15)
периферия (монитор, клавиатура, мышь) возможно, но под вопросом:
Несколько плох монитор?
Клава, мышь - USB или PS/2? (на новой материнке PS/2 может и не оказаться)(от $5)
Всё остальное - на выброс.
Посему подумайте - не хотите ли вы подарить ваш гармоничный набор комплектующих кому-либо?
Я не понимаю, зачем вы упёрлись в именно эту уязвимость.
В питоне нет разделения привилегий и приватных данных - можно добраться до всего.
Если ваш сервис будет принимать произвольные объекты - в них может быть произвольный код, и отловив эту сигнатуру, вы ничего не решите.
Питон так спроектирован, что ничего спрятать нельзя. Почему так - не знаю, это нарушает каноны ООП, но это так.
Класс Coordinate совсем простой, и геттер действительно выглядит, как архитектурное излишество.
Но в дочернем классе nested геттер производит вычисления - и тут уж атрибутом никак не обойтись.
Отличная возможность познакомиться с языком поближе, а так же с алгоритмами и вообще - решение учебных задач.
При желании нетрудно найти качественные и продуманные подборки таковых.
При нежелании можно, не имея достаточного навыка в языке и кругозора там же, делать по-своему.
Хозяин - барин.
Не вижу, как к коменту прикрепить скриншот, прикрепил к своему ответу.
ЧЯДНТ?