I have four files: menu.py
,notebook.py
, __init__.py
and test.py
which are aranged as @afaq suggested.
My notebook.py
:
class Note:
def __init__(self,memo,tag = ''):
self.memo = memo
self.tag = tag
def match(self,filter):
'''determine if this note matches the filter text, return
true if match, false if not'''
return filter in self.memo or filter in self.tag
class Notebook:
def __init__(self):
'''ininitalize a notebook with empty list'''
self.note = []
def search(self,filter):
'''Find all notes that match the given filter string.'''
return [note for note in self.note if note.match(filter)]
And menu.py
: (edited)
import sys
from .notebook import Note, Notebook
class Menu:
'''Display a menu and respond to choices when run.'''
def __init__(self):
self.notebook = Notebook()
self.choices = {
"1": self.search_note,
"2": self.quit
}
def display_menu(self):
print("""
Notebook Menu
1. Search Notes
2. Quit
""")
def run(self):
'''Display the menu and respond to choices.'''
while True:
self.display_menu()
choice = input("Choice is: ")
action = self.choices.get(choice)
if action:
action()
else:
print("{0} is not a valid choice".format(choice))
def search_note(self):
'''search for text and display all notes contain it'''
filter = input("Search for: ")
notes = self.notebook.search(filter)
self.show_note()
def quit(self):
print("Bye bye")
sys.exit(0)
My __init__.py
is empty
My test.py
:
from Notebook.my_notebook.menu import Menu
if __name__ == "__main__":
Menu().run()
When I run test.py
, python returns me this error:
Traceback (most recent call last):
File "test.py", line 1, in <module>
from Notebook.my_notebook.menu import Menu
ModuleNotFoundError: No module named 'Notebook'
How can I fix this?