• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Planista(Python) - poprawność kodu

0 głosów
326 wizyt
pytanie zadane 2 września 2020 w Python przez Damian2102 Nowicjusz (150 p.)

Cześć, dość na poważnie wziąłem naukę Pythona, napisałem program działający w linii poleceń, jest to planista, tzn. 

użytkownik wpisuje jakieś wydarzenie składające się z tytułu, daty, aktywności(tego co robi) oraz czy jest ona wykonana, robiona albo będzie zrobiona. Chciałem poprawnie zaimplementować używanie docstringów, wyjątków, klas i paru innych rzeczy. Prosiłbym o feedback czy kod ten jest znośnej jakości (dobrej wątpię że jest), co można poprawić. Metoda do synchronizacji wydarzeń z plikiem nie działa poprawnie, ale nie chce mi się jej naprawiać. Od razu tutaj zapytam, jeśli mamy klasę utworzoną z namedtuple, tzn. coś takiego

EventDetails = namedtuple("details", [
        "title",
        "date",
        "activity",
        "state"
    ])
    #^^^^^^^^ DOCS REFERRING TO EventDetails !!!
    # TODO Use datetime object instead of str for date
    """
    Parameters
    ---------
    title: str
    date: str
        String representing date in [yyyy.mm.dd] format
    activity: str
    state: Event.ActivityStates.DONE | DOING | TO_DO
    """

To w jakim sensownym miejscu można umieścić komentarz do niej, bo na pewno nie pod nią laugh

main.py https://pastebin.pl/view/70369320

exceptions.py https://pastebin.pl/view/8ab627ba

event.py https://pastebin.pl/view/eeee646f

scheduler.py https://pastebin.pl/view/19ae9a23

1
komentarz 2 września 2020 przez adrian17 Mentor (354,880 p.)

Od razu tutaj zapytam, jeśli mamy klasę utworzoną z namedtuple

Pytanie, po co tak robić, jak można napisać normalną klasę lub - od 3.7 - to:

@dataclass
class EventDetails:
        title: str
        # String representing date in [yyyy.mm.dd] format
        # TODO Use datetime object instead of str for date
        date: str
        activity: str
        state: Event.ActivityStates

 

komentarz 2 września 2020 przez Damian2102 Nowicjusz (150 p.)
Myślę, dzięki, o tym @dataclass nie wiedziałem, zaraz sobie poczytam o tym dokładniej.
1
komentarz 2 września 2020 przez adrian17 Mentor (354,880 p.)

Analogicznie wszędzie indziej:

    def _check_date_correctness(date):
        """ Check date correctness, correct date is in [yyyy.mm.dd] format
 
       Parameters
       ----------
       date: str

Czemu nie normalnie otypować?

def _check_date_correctness(date: str) -> bool:
    """
    Verifies that date format is [yyyy.mm.dd] 
    """

(jeszcze inna sprawa, że ta funkcja w zasadzie nie powinna istnieć, bo Python lub zewnętrzne biblioteki mają funkcjonalność parsowania dat)

1
komentarz 2 września 2020 przez adrian17 Mentor (354,880 p.)
class Scheduler:
    """ Class representing a scheduler
   
   Attributes
   ----------
   _events: list(Event)
       An Events class instances list

->

class Scheduler:
   _events: List[Event]

etc etc etc

komentarz 2 września 2020 przez Damian2102 Nowicjusz (150 p.)
Tak jak pisałem gdzieś w TODO, date nie będzie stringiem tylko normalnie obiektem datetime, to wtedy pewnie ta funkcja do sprawdzenia poprawności daty wyleci.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
1 odpowiedź 1,996 wizyt
0 głosów
1 odpowiedź 440 wizyt
0 głosów
2 odpowiedzi 739 wizyt

93,631 zapytań

142,553 odpowiedzi

323,056 komentarzy

63,139 pasjonatów

Advent of Code 2025

Top 15 użytkowników

  1. 2900p. - dia-Chann
  2. 2870p. - DziarnowskiJ
  3. 2827p. - Łukasz Piwowar
  4. 2783p. - raydeal
  5. 2758p. - Adrian Wieprzkowicz
  6. 2713p. - rucin93
  7. 2579p. - Łukasz Eckert
  8. 2459p. - CC PL
  9. 2184p. - Maurycy W
  10. 2082p. - Michal Drewniak
  11. 1885p. - robwarsz
  12. 1811p. - rafalszastok
  13. 1600p. - Rafał Trójniak
  14. 1588p. - Tomasz Bielak
  15. 1494p. - ssynowiec
Szczegóły i pełne wyniki

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...