Code-Poets / coding-style

0 stars 0 forks source link

Parametry z wartością domyślną, która nie jest read-only #2

Open cameel opened 6 years ago

cameel commented 6 years ago

Moim zdaniem powinniśmy zabronić tego w Coding Style i dodać wyjaśnienie dlaczego. Moja wstępna propozycja:

Jeżeli ktoś chciałby to przeformułować, rozszerzyć albo dodać przykłady, proszę o propozycje w komentarzach.

rwrzesien commented 6 years ago

:+1:

dybi commented 6 years ago

@cameel, bardzo dobry pomysł. Dorzuciłbym przykład z linka:

def myfunc(value=None):
    if value is None:
        value = []
    # modify value here

bo jak znam życie, to co druga osoba nie kliknie/nie przeczyta ;)

Oprócz tego, myślę, że warto byłoby napisać o NIE nadawaniu wartości domyślnych wszystkim argumentom w funkcjach. W kodzie mamy sporo funkcji typu:

def weird_fun(param1=None, param2=None):
    assert param1 is not None
    assert isinstance(param2, str)
   # some code 
cameel commented 6 years ago

OK.

Co do nadużywania wartości domyślnych to też zupełnie się zgadzam. Ale może zaproponuj konkretne sformułowanie dla tej zasady w osobnym issue.

dybi commented 6 years ago

zrobiłem issue: https://github.com/Code-Poets/coding-style/issues/4

Jakub89 commented 6 years ago

:+1:

dybi commented 6 years ago

To też chyba można już śmiało dodać ;)

dybi commented 6 years ago

@cameel, zmodyfikowałem Twojego posta - dodałęm do niego przykład z linka