У меня есть кусок написанного кода,Преобразование функций Python в классах для повторного
class Corpus:
def __init__(self):
return self
def __iter__(self):
return self
def __next__(self):
return self
def getwords():
pass
if __name__ == "__main__":
texts = []
if len(sys.argv) >= 2:
for filename in sys.argv[1:]:
texts.append(str(filename))
else:
print("Error!", sys.stderr())
removables = [".", ",", "!", "?", "(", ")"]
text = ""
for filename in texts:
with open(filename) as f:
for line in f:
text += line
words = text.lower().split()
allwords = {}
for word in words:
for removable in removables:
if removable in word:
word = word.replace(removable, "")
if word in allwords:
allwords[word] += 1
else:
allwords[word] = 1
print(allwords)
wordsearch = input("Enter word to search : ")
filesearch = input("Enter file to search in: ")
with open(filesearch) as f2:
for line in f2:
if wordsearch in line:
print(line)
wordsunique = len(allwords)
wordtotal = len(words)
filetotal = len(texts)
print("Total number of words: ", wordtotal)
print("Total number of unique words: ", wordsunique)
print("Total number of files: ", filetotal)
Это простой wordcounter. Однако я хотел бы скорее разместить разделы, которые определяют имя файла и слово для поиска в классе, чтобы код повторно использовался для более крупного проекта, над которым я работаю. Может ли кто-нибудь указать мне в правильном направлении?
Я бы не смешивал обработку ввода (self.get_word_from_user()) с логикой обработки в одном классе. Это уменьшает возможность повторного использования. См. Шаблон проектирования MVC. Я также не уверен, если начинать с (довольно сложного) класса поможет MAK понять, что основные принципы повторного использования. – Juergen
Конечно, FearofPython был вопросником, а не MAK - больше не могу исправить это в моем комментарии. – Juergen