implizit und explizit

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
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

hallo miteinander
in der programmwelt kommt das implizit und explizit sehr häufig vor. Könnte mir bitte jemand erklären, was für eine Bedeutung es in Python hat....

Gruss kostonstyle
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Keine Besondere. Explizit == ausdruecklich, implizit ist das Gegenteil.
Das kann dir ein Woerterbuch aber bestimmt besser erklaeren.

Wenn du einen konkreten Fall hast, kannst du den aber hier ruhig posten, dann kann man den durchgehen.
kostonstyle
User
Beiträge: 148
Registriert: Sonntag 2. November 2008, 12:13

ok vielen dank, wenn ich ein konkretes Beispiel habe, werde ich hier aufführen.
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

In Programmiersprachen wird das Wort "Explizit" gerne verwendet, wenn es darum geht, Code verständlicher zu schreiben.

Explizit: Man sieht auf den ersten Blick, was hier passiert. Es gibt keine Unerwarteten Nebeneffekte. Jemand, der den Code nicht selbst geschrieben hat, könnte ihn trotzdem auch ohne Dokumentation oder Kommentare verstehen. Der Code ist nachvollziehbar und seine Funktionsweise sichtbar.

Implizit: Das Gegenteil von Explizit.

Übertriebenes Beispiel:

Code: Alles auswählen

mydict = dict(x=5, y=10)
for key in mydict.keys():
    print "Key: %s, value: %d" % (key, mydict.get(key))

a = {'x':5, 'y':10}
for x in a:
    print "Key:", x + ", value:", a[x]
Das zweite Beispiel verwendet einige Effekte, die nicht offensichtlich sind.
Bottle: Micro Web Framework + Development Blog
Zap
User
Beiträge: 533
Registriert: Freitag 13. Oktober 2006, 10:56

Was im Kontext mit explizit und implizit auch hier im Forum immer wieder aufkommt ist der Wunsch self nicht mehr explizit angeben zu müssen...

anstatt:

Code: Alles auswählen

class X:
    def __init__(self):
        self.x = 1
dies schreiben zu dürfen:

Code: Alles auswählen

class X:
    def __init__():
        self.x = 1
Da import this aber sagt "Explicit is better than implicit." haben Pythonverteidiger eine super Begründung parat ;)
Es gibt auch technische Gründe aber konzeptionelle reichen mir zum Beispiel schon. Hauptsache man bleibt konsequent.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Defnull hat geschrieben:In Programmiersprachen wird das Wort "Explizit" gerne verwendet, wenn es darum geht, Code verständlicher zu schreiben.
Etwas explizit zu machen heißt natürlich nicht automatisch, dass es dadurch verständlicher wird. Das ist häufig der Wunsch, aber man kann auch dadurch in Implementationsdetails ersticken, vor denen als Wald man die Bäume nicht mehr sieht. Daher kann man einfach nur sagen, dass explizit eben ausdrücklich oder ausführlich heißt. Nicht mehr, nicht weniger.

Das man in Java z.B. jede Schleife explizit hinschreiben muss und keine map()-, filter()- oder reduce()-Funktionen geschweige denn List-Comprehension hat, macht diese Schleifen weniger lesbar.

Stefan
Antworten