Я не эксперт, но причина для возврата self в том, что это экземпляр класса, с которым вы работаете, и это то, что позволяет вам связывать методы.
Для того, что вы пытаетесь сделать, цепочка методов не кажется лучшим подходом. Вы хотите sendData () для каждой итерации l oop in read_chapters () ? (у вас есть self.chapter = i, который всегда перезаписывается)
Вместо этого вы можете сохранить главы в списке и отправить их после всей обработки. Кроме того, и я не знаю, является ли это хорошей практикой, но у вас может быть получатель, который возвращает данные, если вы хотите сделать что-то другое с (возвращайте self.chapter вместо self )
Я бы изменил ваш код на:
import datetime
class PrinceMail:
def __init__(self):
self.date2 = datetime.date(2020, 2, 6)
self.date1 = datetime.date.today()
self.days = (self.date1 - self.date2).days
self.file = 'The_Name.txt'
self.chapter = []
def read_chapters(self):
with open(self.file, 'r') as book:
content = book.readlines()
indexes = [x for x in range(len(content)) if 'CHAPTER' in content[x]]
indexes = indexes[self.days:]
heading = content[indexes[0]]
try:
for i in (content[indexes[0]:indexes[1]]):
self.chapter.append(i)
except IndexError:
#not shure what you want to do here
for i in (content[indexes[0]:]):
self.chapter.append(i)
return self
# sendData has to run after readChapters automatically
def sendData(self):
pass
#do what ever with self.chapter
def get_raw_chapters(self):
return self.chapter
Кроме того, ознакомьтесь с Руководством по стилю PEP 8 для соглашений об именах (https://www.python.org/dev/peps/pep-0008/#function -and-variable-names )
Больше чтения в
Привязка методов - почему это хорошая практика или нет?
Что __init__ и Самостоятельно делаю на Python?