Wiele języków programowania zawiera już złożone instrukcje: +=
, -=
, /=
itd. Stosunkowo nowym stylem programowania jest "łańcuchowe" wywoływanie metod na siebie nawzajem, np. w Linq, JQuery i ORM Django.Dlaczego nie ma "instrukcji połączenia metody złożonej", tj. ". ="?
ja czasami częściej niż chciałbym, znaleźć trzeba to zrobić w Django:
# Get all items whose description beginning with A
items = Items.objects.filter(desc__startswith='A')
if something:
# Filter further to items whose description also ends with Z
items = items.filter(desc__endswith='Z')
myślę, że byłoby łatwiej i faktycznie bardziej czytelny, jeśli nie było oświadczenie metoda związek takie wezwanie jak .=
które mogłyby działać tak:
items = Items.objects.filter(desc__startswith='A')
if something:
items .= filter(desc__endswith='Z')
- czy istnieją jakieś języki programowania, które obsługują to lub coś podobnego?
- Jeśli odpowiedź brzmi "nie", dlaczego nie?
- Czy ten styl programowania jest naprawdę nowy?
- Czy są jakieś PEP (Propozycje ulepszeń Pythona), które obsługują ten pomysł?
Czy to dla mnie, czy to brzmi jak wspólnota wiki? –
@Cristian Ciupitu: Tak, więc to zmieniłem. –
Zawsze zadziwia mnie to, że programiści zachowują się tak, jakby pisanie było największą częścią ich pracy, więc zapisanie nawet trzech naciśnięć klawiszy jest warte dodania nieprzejrzystej składni z wątpliwą semantyką. –