klammern in datei entfernen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
BlackJack

@mutetella: Ein paar Beispiele für syntaktischen Zucker:

Code: Alles auswählen

ys = [f(x) for x in xs if p(x)]
# 
# Zucker für:
# 
ys = list()
for x in xs:
    if p(x):
        ys.append(f(x))

# ----

ys = (f(x) for x in xs if p(x))
# 
# Zucker für:
# 
def gf():
    for x in xs:
        if p(x):
            yield f(x)

ys = gf()

# ----

def gf():
    init()
    while True:
        if end_condition():
            break
        yield next_result()
# 
# Zucker für:
# 
class Iterator(object):
    def __init__(self):
        init()
    
    def __iter__(self):
        return self
    
    def next(self):
        if end_condition():
            raise StopIteration
        return next_result()

gf = Iterator()

# ----

with create_context() as c:
    do_something(c)
# 
# Zucker für (vereinfacht):
# 
c = create_context().__enter__()
try:
    do_something(c)
finally:
    c.__exit__()

# ----

lambda x: do_something(x)
# 
# Zucker für:
# 
def temporary_name(x):
    return do_something(x)

# ----

for x in xs:
    do_something(x)
# 
# Zucker für:
# 
xs_iterator = iter(xs)
while True:
    try:
        x = xs_iterator.next()
    except StopIteration:
        break
    do_something(x)

# ----

def f():
    do_something()
# 
# Zucker für:
# 
class F(object):
    def __call__(self):
        do_something()

f = F()
Das heisst syntaktischer Zucker weil es etwas ”Süsses” ist, was man auf die Syntax noch oben drauf ”streut” um die Sprache ”leckerer” zu machen. Aus dem Blickwinkel könnte man jetzt sagen, dass die beiden letzten Beispiele kein Zucker für ”oben drauf” sind, sondern welcher den man eigentlich als Grundzutat in der ”Sprachbackmischung” erwarten würde. Das hat aber nicht jede Sprache — Java-Programmierer mussten lange auf eine „for-each”-artige Schleife warten und im letzten Java mit dem ich zu tun hatte (Java 6) musste man für Rückruf”funktionen” immer noch Klassen mit einer Methode schreiben, die einen von der API festgelegten Namen haben musste.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

BlackJack hat geschrieben:Ein paar Beispiele für syntaktischen Zucker
Danke für die Erklärung...
Zuletzt geändert von mutetella am Mittwoch 14. November 2012, 18:55, insgesamt 1-mal geändert.
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
BlackJack

@mutetella: Ja der gehört eigentlich eher hier hin. :oops: Hab's mal verschoben.
Antworten