Найти - Пользователи
Полная версия: интерфейс файла
Начало » Python для новичков » интерфейс файла
1
dobriy_dada
Здравствуйте, мне нужно создать класс File, который поддерживает сложение файлов

там есть такой метод
     def __add__(self, other_file):
        data = other_file.read()
        self.write(data)
        return self

Что должно быть в return и как создать новый файл, в который запишутся результаты сложения двух файлов?
Заранее спасибо :-)
python335
Вырвано из контекста всего кода: Почему вы возвращаете просто 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
    
На самом деле все это можно было сделать в одной функции просто чтобы сделать его более читаемым и кратким.
py.user.next
dobriy_dada
Что должно быть в return
return self

dobriy_dada
и как создать новый файл, в который запишутся результаты сложения двух файлов?
Его не надо создавать, у тебя должен быть открытый файл на чтение и запись в объекте File, ты должен перейти в его конец и дописать данные из переданного файла.

А self возвращается, чтобы можно было делать file1 + file2 + file3. Тогда результат первой операции будет сразу применён во второй операции, то есть их не нужно будет разделять на два оператора сложения файлов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB