Тест, протестирует на идентификационные данные с помощью встроенного 'идентификатора ()' функция, которая по существу возвращает адрес памяти объекта и поэтому не является сверхзагружаемой.
Однако в случае тестирования равенства класса Вы, вероятно, хотите быть строгими о своих тестах и только сравнить атрибуты данных в Вашем классе:
import types
class ComparesNicely(object):
def __eq__(self, other):
for key, value in self.__dict__.iteritems():
if (isinstance(value, types.FunctionType) or
key.startswith("__")):
continue
if key not in other.__dict__:
return False
if other.__dict__[key] != value:
return False
return True
Этот код только сравнит не функциональные элементы данных Вашего класса, а также пропуска чего-либо частного, которое обычно является, что Вы хотите. В случае Простых Объектов Python у меня есть базовый класс, который реализует __ init __, __ str __, __ repr __ и __ eq __, таким образом, мои объекты POPO не несут нагрузку всего этого дополнительного (и в большинстве случаев идентичный) логика.
Что касается разработки на C ++, я бы выбрал Qt Creator IDE для облегчения перехода с Visual Studio. Я считаю, что он может удовлетворить все ваши потребности.
Я думаю, вам стоит просто перекусить и выучить достаточно make, gcc и gdb для выполнения того, что вам нужно делать в командной строке. Если вы об этом позаботитесь, вы можете использовать любой редактор, который вам нравится, для написания кода - даже редактор Visual Studio.
Вы можете использовать дизайнер интерфейсов Glade (glade.gnome.org) для разработки интерфейса.
BOUML для моделирования UML и управления проектами
Вы всегда можете использовать eclipse или netbeans для разработки на C ++ на linux.
Хотя я рекомендую Eclipse, он автоматически генерирует make-файлы, отладка очень проста, и вы можете настроить репозитории кода в среде IDE.
Взгляните на Code :: Blocks. Это хорошая IDE для работы с C / C ++ и поставляется с собственной системой сборки. Но не забывайте загружать версию из официального репозитория ubuntu, а перейдите на форум CB и найдите последнюю ночную сборку. Есть люди, которые поддерживают репозитории с пакетами ubuntu. Я думаю, CB стоит того, чтобы установить последнюю версию.
Ссылка на Code :: Blocks Forum
Кстати. Я установил несколько дней назад. Есть два человека, поддерживающих 64-битные пакеты Ubuntu. Однако только один работал. Это был этот .
Лучшие инструменты, которые вам понадобятся:
Для Ubuntu я предлагаю вам использовать Glade, потому что Ubuntu использует Gnome (GTK).
Об IDE: