Форум сайта python.su
Здравствуйте, мне нужно создать класс File, который поддерживает сложение файлов
там есть такой метод
def __add__(self, other_file): data = other_file.read() self.write(data) return self
Отредактировано dobriy_dada (Окт. 20, 2017 21:21:46)
Офлайн
Вырвано из контекста всего кода: Почему вы возвращаете просто self(точно не знаю, может так и можно)?
А вот помочь могу:
def __add__(self, other_file): # Просто для справки - аттрибутам выдается память на свое выполнение как только начинает выполняться класс - если вам не нужно чтобы он сразу выполнялся - поменяйте название чтобы оно было не как у аттрибута data = other_file.read() self.write(data) # Думаю возвращать тут нечего. def write(self,faylik): all_text = str(faylik) + "\n" + str(self.first_file.read()) # Где первый файл? Пусть будет так ''' Сделал все тексты строками потому, что там могут быть только цифры и Питон определит их как числа. А нам нужно добавить перенос строки(если не нужен - убери) ''' return all_text
Отредактировано python335 (Окт. 21, 2017 10:11:55)
Офлайн
dobriy_dada
Что должно быть в return
return self
dobriy_dadaЕго не надо создавать, у тебя должен быть открытый файл на чтение и запись в объекте File, ты должен перейти в его конец и дописать данные из переданного файла.
и как создать новый файл, в который запишутся результаты сложения двух файлов?
Отредактировано py.user.next (Окт. 22, 2017 14:25:45)
Офлайн