Форум сайта python.su
63
py.user.nextПрограмма для работы с сайтом: 10 классов по 800-1200 строк.
когда будешь писать что-нибудь больше ста строк, тогда и поймёшь
py.user.nextЭкземпляр класса. Ведь Вы наследуете и метод __str__ и __repr__ автоматом.
пропринтовать что ?
Отредактировано 4kpt (Авг. 21, 2013 23:15:42)
Офлайн
857
4kptэто всё слова, причём очень подозрительные ;)
Программа для работы с сайтом: 10 классов по 800-1200 строк.
4kptон не написан, а в голове
Экземпляр класса. Ведь Вы наследуете и метод __str__ и __repr__ автоматом.
4kptэто не повтор
P.S. Вы по поводу повтора существуещего кода ничего так и не сказали :)
Отредактировано py.user.next (Авг. 21, 2013 23:27:09)
Офлайн
63
Хорошо. Давайте пример возьмем более корректный.
Необходимо написать конвертер фотографий.
Как это можно сделать:
Вариант 1.
- Написать класс, который будет самостоятельно реализовывать хранилище объектов открытых фотографий или путей к фотографиям + дописать методы, которые будут с этим хранилищем работать (добавить фото в хранилище, достать фото из хранилища, удалить и т.п.);
Вариант 2.
Написать два класса. Первый из них мы формируем сами. Экземпляры этого класса являются объектами открытых фотографий или путей к фотографиям с методами работы с фотографиями (конвертация, изменение размера и т.п.). Второй класс, который был унаследован от списка хранит ссылки на экземпляры первого.
Так как второй класс изначально унаследован от списка, соответственно он обладает всеми его методам.
Неужели действие метода pop этого класса может вызвать какие-то сомнения. Или метод del, или метод append или метод len… При этом мы получаем “на шару” все механизмы списка. Единственное, что нужно не забыть, так это написать в первом классе метод __str__ и __repr__, чтобы при
print instance_two_class
["<open file: 1.jpeg>", "<open file: 2.jpeg>", "<open file: 3.jpeg>"]
print instance_two_class[0]
name: "1.jpg" path: "c:\foto" size: [200, 200] ....
Отредактировано 4kpt (Авг. 22, 2013 08:57:04)
Офлайн
63
py.user.nextМне серенево Ваше недоверие :)
это всё слова, причём очень подозрительные ;)
Отредактировано 4kpt (Авг. 21, 2013 23:35:37)
Офлайн
253
SotericЯ поддержу 4kpt. Предлагается сделать интерфейс к телефонной книге создавая методы addSubscriber removeSubscriber и т.п. А почему не insertFriend и killFriend? Пользователю программы или самому разработчику через пол года будет удобно вспоминать эти названия, или ковыряться в документации?
Клиент видит два понятных ему метода. Он не знает, что это словарь.
class HumanPhones(object): u"""запись про человека - фио и список его телефонов""" def __init__(self,name,phonelist): self.name = name self.phonelist = phonelist class PhoneQuery(UserDict): u"""ведет как словарь по имени дает список однофамильцев каждый из которых со списком телефонов""" class PhoneBook(set): u"""множество людей (set) - интерфейс поиска людей по заданной фамилии осуществляет объект name2human_list""" def __init__(self): name2human_list=PhoneQuery()
Отредактировано doza_and (Авг. 23, 2013 12:00:29)
Офлайн