Advertisement
ksieradzinski

Untitled

Apr 17th, 2025
4,031
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. from datetime import datetime
  2. from json import dump
  3.  
  4. class Todo:
  5. def __init__(self, title, is_done=False):
  6. self.title = title
  7. self.is_done = is_done
  8. self.created_at = datetime.now()
  9.  
  10. def toggle_is_done(self):
  11. self.is_done = not self.is_done
  12.  
  13. def to_dict(self):
  14. return {
  15. "title": self.title,
  16. "is_done": self.is_done,
  17. "created_at": self.created_at.isoformat()
  18. }
  19.  
  20. class Application:
  21. def __init__(self):
  22. self.todos = []
  23.  
  24. def add(self, todo: Todo):
  25. self.todos.append(todo)
  26.  
  27. def save(self):
  28. # Zapisanie wszystkich zadań do zrobienia z todos do pliku json
  29. with open("todos.json", "w", encoding="utf8") as file:
  30. # todos = []
  31. # for todo in self.todos:
  32. # todos.append(todo.to_dict()
  33.  
  34. todos = [todo.to_dict() for todo in self.todos]
  35. dump(todos, file)
  36.  
  37.  
  38. app = Application()
  39. todo = Todo("Wynieś śmieci")
  40. app.add(todo)
  41. app.add(Todo("Ugotuj obiad"))
  42. app.add(Todo("Idź spać"))
  43. app.save()
  44.  
  45.  
  46. # from json import load, loads, dump, dumps
  47. # load - ładuje zawartość z pliku do postaci słowników, list itd.
  48. # loads - ładuje zawartość ze stringa do postaci słowników, list itd.
  49.  
  50. # dump - zapisuje listy, słowniki do pliku
  51. # dumps - zapisuje listy, słowniki do stringa
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement