Viele Programmiersprachen haben bereits die zusammengesetzten Anweisungen +=
, -=
, /=
usw. Ein relativ neuer Programmierstil besteht darin, Methodenaufrufe miteinander zu "ketten", z. in Linq, JQuery und Djangos ORM. manchmalWarum gibt es keine "Compound Method Call Statement", d. H. ". ="?
ich öfter als ich möchte, finden die Notwendigkeit, diese in Django zu tun:
# 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')
ich denke, es wäre einfacher, und tatsächlich besser lesbar, wenn es eine Verbindung Methodenaufruf Aussage war so wie .=
könnte, die wie folgt funktionieren:
items = Items.objects.filter(desc__startswith='A')
if something:
items .= filter(desc__endswith='Z')
- gibt es Programmiersprachen, die dies oder etwas ähnliches zu unterstützen?
- Wenn die Antwort nein ist, warum nicht?
- Ist diese Art der Programmierung wirklich so neu?
- Gibt es PEPs (Python Enhancement Proposals), die diese Idee unterstützen?
Ist es für mich oder das klingt wie ein Community-Wiki? –
@Cristian Ciupitu: Es tut, also habe ich es geändert. –
Es erstaunt mich immer wieder zu sehen, wie Programmierer so tun, als ob Tippen der größte Teil ihrer Arbeit wäre, so dass es sich lohnt, undurchsichtige Syntax mit fragwürdiger Semantik hinzuzufügen, um sogar drei Tastenanschläge zu sparen. –