Meta tags:
description= Python Enums erklärt: Enum, IntEnum, Flag und auto() erstellen, Methoden hinzufügen, sicher vergleichen und Magic Numbers im Code ersetzen.;
Headings (most frequently used words):
enums, enum, und, verwenden, ein, member, intenum, flag, wann, python, warum, erstellen, über, iterieren, auto, automatische, werte, vergleichen, die, sich, wie, ganzzahlen, verhalten, kombinierbare, bit, methoden, properties, hinzufügen, aliase, unique, benutzerdefinierte, suche, mit, _missing_, übungen, auf, zugreifen, repr, type, gegenüber, bevorzugen,
Text of the page (most frequently used words):
enum (73), #python (72), color (47), sie (44), print (36), red (33), und (28), member (26), die (25), enums (24), ein (22), kopieren (22), status (22), ist (18), value (17), auto (16), class (16), für (15), lernen (15), werte (14), import (14), from (14), matplotlib (14), verwenden (13), name (13), green (13), mysql (13), das (12), mit (12), flag (12), intenum (12), wenn (12), eine (12), active (12), mongodb (12), der (11), oder (11), self (11), methoden (10), erstellen (10), von (10), auf (10), listen (9), true (9), sind (9), blue (9), unique (8), hinzufügen (8), wird (8), def (8), können (8), high (8), order (8), über (7), html (7), ganzzahlen (7), string (7), benötigen (7), pending (7), einem (7), priority (7), handle_order (7), strings (7), elemente (7), _missing_ (6), sich (6), the (6), den (6), müssen (6), einen (6), nicht (6), wert (6), for (6), elif (6), permission (6), orderstatus (6), w3docs (5), alle (5), code (5), tools (5), übungen (5), aliase (5), wie (5), entfernen (5), klassen (5), false (5), möchten (5), return (5), auch (5), mass (5), radius (5), read (5), low (5), tutorial (5), tuples (5), formatter (5), json (4), generator (4), wann (4), properties (4), daten (4), aus (4), nur (4), einer (4), zwei (4), datenbank (4), geben (4), valueerror (4), zum (4), jedes (4), tupel (4), property (4), request (4), httpstatus (4), user (4), write (4), level (4), keine (4), dass (4), zugreifen (4), complete (4), dateien (4), erste (4), schritte (4), regression (4), dictionaries (4), set (4), listenelemente (4), durchlaufen (4), encoder (3), editor (3), quizze (3), php (3), javascript (3), css (3), suche (3), kombinierbare (3), bit (3), verhalten (3), vergleichen (3), iterieren (3), warum (3), abstrakte (3), was (3), returns (3), with (3), als (3), modul (3), menge (3), zur (3), api (3), stillschweigend (3), standard (3), bei (3), dem (3), verweist (3), aber (3), iteration (3), surface_gravity (3), planet (3), not_found (3), handle_response (3), 200 (3), klasse (3), membern (3), execute (3), sein (3), zahlen (3), med (3), type (3), probleme (3), magic (3), variablen (3), sets (3), italiano (2), português (2), español (2), français (2), русский (2), deutsch (2), english (2), beautifier (2), diff (2), password (2), java (2), git (2), bücher (2), snippets (2), benutzerdefinierte (2), automatische (2), this (2), page (2), duplikate (2), prüfen (2), raises (2), bracket (2), access (2), integer (2), what (2), does (2), when (2), verwandte (2), siehe (2), ohne (2), collections (2), dataclasses (2), werden (2), benutzereingaben (2), zustände (2), dictionary (2), tabelle (2), kein (2), verglichen (2), benannter (2), bestellstatus (2), http (2), wahl (2), auslösen (2), none (2), cls (2), str (2), classmethod (2), versehentliche (2), fehler (2), duplicate (2), nützlich (2), tippfehler (2), list (2), running (2), alias (2), denselben (2), teilen (2), mercury (2), round (2), earth (2), __init__ (2), 404 (2), failed (2), succeeded (2), is_error (2), is_success (2), logik (2), innerhalb (2), anstatt (2), jede (2), weist (2), aufeinanderfolgende (2), zweierpotenzen (2), sodass (2), all (2), mehrere (2), seine (2), gleich (2), einfaches (2), arithmetik (2), rohen (2), gegenüber (2), levels (2), sortieren (2), medium (2), bedeutet (2), überall (2), int (2), small (2), size (2), verhindert (2), ganzzahl (2), beide (2), etwas (2), west (2), east (2), south (2), north (2), direction (2), repr (2), attribute (2), zeichenketten (2), typ (2), diese (2), sicher (2), numbers (2), dieses (2), kapitel (2), lesen (2), datentypen (2), zuweisen (2), and (2), handling (2), limit (2), update (2), drop (2), collection (2), delete (2), insert (2), grid (2), einführung (2), schleifen (2), verbinden (2), ändern (2), hash (2), 2026, rechte, vorbehalten, entwickler, gemacht, sprache, datenschutzrichtlinie, kontakt, uns, unternehmen, probier, üben, kostenlose, tutorials, beispiele, web, seit, 2014, next, previous, yes, helpful, keyerror, because, don, support, directly, its, übung, eng, muster, strukturierte, standardwerten, durchsetzung, schnittstellenverträgen, unterklassen, hinweg, benannte, konstantencontainer, vollen, mechanismus, bietet, alternative, namedtuple, stammen, gegen, schema, validiert, erwägen, bibliothek, pydantic, nahtlos, integriert, klaren, booleschen, bedeutung, einfacher, laufzeit, ändert, lookup, offen, wahrscheinlich, gültigen, formular, befüllen, dokumentieren, dasselbe, konzept, einzige, wahrheitsquelle, mehreren, stellen, daran, hindern, durchzukommen, ungültige, variable, halten, kann, verb, kartenfarbe, festen, richtige, empfängt, gefundenen, passende, zurück, seinen, lässt, lower, isinstance, standardmäßig, löst, klassenmethode, überschreiben, erkannte, behandeln, beispiel, berücksichtigung, groß, kleinschreibung, unknown, guter, aliasierung, wäre, values, found, bad, trying, add, inactive, gelegentlich, legacy, neuen, verdecken, decorator, doppelte, vollständig, verbieten, zweite, ersten, aufgelöst, zurückgegeben, konstruktorargumenten, enthält, weiterhin, vollständige, 67430e, 37814e6, 976e, 0518e6, 869e, venus, 4397e6, 303e, benutzerdefiniertes, zusätzliche, pro, speichern, 400, 300, 500, internal_error, 201, created, ihm, hält, des, typs, ketten, verteilen, berechtigungssysteme, feature, toggles, situation, kompakten, satz, boolescher, schalter, kombination, nie, mehrdeutigen, ergebnissen, führt, szenarien, konzipiert, denen, optionen, gleichzeitig, aktiv, kombinieren, operator, bitweises, transparenz, schwäche, falsch, eingetipptes, literal, strikte, typsicherheit, wirklich, ganzzahlige, interagieren, arbeitet, intenums, bevorzugen, sorted, häufiger, anwendungsfall, liste, reguläre, vergleichsoperatoren, dort, einsetzen, erwartet, wertbasierte, vergleiche, stattdessen, unten, different, types, beabsichtigt, gleichheit, zwischen, verschiedenen, dieselbe, seinem, vergleich, funktionieren, schneller, singletons, jeder, genau, objekt, besonders, laufe, zeit, wachsen, manuell, umnummerieren, konkreten, rolle, spielen, eindeutig, dies, macht, praktisch, befüllung, dropdown, menüs, aufbau, switch, ähnlichen, dispatch, tabellen, erstellung, auswahllisten, zugehörigkeit, iterierbar, liefert, definitionsreihenfolge, instanz, seiner, menschen, lesbare, bezeichnung, logging, anzeige, zugrunde, liegenden, externes, system, übergeben, stellt, verfügung, call, square, notation, most, common, gibt, drei, möglichkeiten, zuzugreifen, klassenattribut, rechten, seite, beliebiger, anderer, liegt, ihnen, importieren, teil, standardbibliothek, installation, erforderlich, unterklasse, absicht, klar, versehentlich, zweig, passt, beheben, gleiche, geschrieben, selbstdokumentierend, refaktorierungsfreundlich, entscheiden, anderes, bedeuten, soll, codebasis, finden, refaktorierung, riskant, gültiges, unsichtbar, tut, nichts, warnung, validierung, allein, bis, funktionsdefinition, zurückverfolgen, funktioniert, hat, echte, betrachten, funktion, einfache, übergebenen, verarbeitet, bevor, sollten, vertraut, objekten, man, anderen, mustern, bevorzugt, automatisch, lassen, zugriff, nach, eines, existieren, welche, lösen, behandelt, kurz, enumeration, konstanter, unter, einzigen, zusammengefasst, rohe, verstreuen, jedem, beschreibenden, namen, garantiert, dieser, immer, erklärt, ersetzen, anfragen, pytest, pakete, virtuelle, umgebungen, tooling, best, practices, threading, asyncio, concurrency, csv, random, sys, itertools, ausnahmen, error, library, addieren, umkehren, how, kapselung, polymorphismus, static, methods, advanced, oop, match, anweisung, enumerate, zip, map, comprehensions, kontextmanager, rekursion, closures, generatoren, decorators, args, kwargs, hints, intermediate, sort, query, find, join, table, where, select, einstieg, nearest, neighbors, auc, roc, kurve, cross, validation, bootstrap, aggregation, means, kategoriale, search, logistische, hierarchisches, clustering, konfusionsmatrix, entscheidungsbaum, train, test, skalierung, multiple, polynomiale, lineare, streudiagramm, normalverteilung, datenverteilung, perzentil, standardabweichung, mittelwert, median, modus, machine, learning, kreisdiagramme, histogramme, balken, scatter, subplot, beschriftungen, linie, marker, plotting, pyplot, django, scipy, pandas, numpy, modules, löschen, schreiben, dateiverarbeitung, file, formatierung, benutzereingabe, try, except, pip, regex, math, datumsangaben, module, scope, iteratoren, vererbung, objekte, arrays, lambda, funktionen, while, else, tupeln, gruppieren, operatoren, booleans, casting, kommentare, syntax, variablennamen, aktualisieren, entpacken, tuple, slicen, home, ausgabevariablen, verschachtelte, modifizieren, comprehension, zusammenführen, globale, format, escape, zeichen, verketten, aufrufen, anmelden, durchsuchen, formatters, url, reverse, sha256, md5, length, calculator, colors, hsl, hex, mixer, converter, picker, general, kurse, vollständiger, leitfaden,
Text of the page (random words):
es python variablen elemente entfernen listenelemente entfernen set elemente entfernen set methoden strings slicen listen sortieren string methoden tuple methoden tupel entpacken tuples aktualisieren variablennamen python einführung python erste schritte python syntax python kommentare python variablen python datentypen python zahlen python casting python strings python booleans python operatoren python listen python tupeln gruppieren python dictionaries python if else python while schleifen python for schleifen python funktionen python lambda python arrays python klassen objekte python vererbung python iteratoren python scope python module python datumsangaben python math python json python regex python pip python try except python benutzereingabe python string formatierung file handling python dateiverarbeitung python dateien lesen python dateien schreiben erstellen python dateien löschen python modules numpy tutorial pandas tutorial scipy tutorial django tutorial python matplotlib matplotlib einführung matplotlib erste schritte matplotlib pyplot matplotlib plotting matplotlib marker matplotlib linie matplotlib beschriftungen matplotlib grid matplotlib subplot matplotlib scatter matplotlib balken matplotlib histogramme matplotlib kreisdiagramme machine learning erste schritte mittelwert median modus standardabweichung perzentil datenverteilung normalverteilung von daten streudiagramm lineare regression polynomiale regression multiple regression skalierung train test entscheidungsbaum konfusionsmatrix hierarchisches clustering logistische regression grid search kategoriale daten k means bootstrap aggregation cross validation auc roc kurve k nearest neighbors python mysql mysql einstieg mysql datenbank erstellen mysql tabelle erstellen mysql insert mysql select mysql where mysql order by mysql delete mysql drop table mysql update mysql limit mysql join python mongodb mongodb erste schritte mongodb datenbank erstellen mongodb collection erstellen mongodb insert mongodb find mongodb query mongodb sort mongodb delete mongodb drop collection mongodb update mongodb limit intermediate python f strings type hints args kwargs decorators generatoren closures rekursion kontextmanager comprehensions enumerate zip map match anweisung advanced oop magic methods property static classmethod dataclasses polymorphismus kapselung abstrakte klassen enums python how to listen duplikate entfernen string umkehren zwei zahlen addieren error handling and the standard library ausnahmen auslösen collections itertools os sys random csv dateien concurrency in python asyncio threading python tooling and best practices virtuelle umgebungen pakete pytest http anfragen python enums python enums erklärt enum intenum flag und auto erstellen methoden hinzufügen sicher vergleichen und magic numbers im code ersetzen ein enum kurz für enumeration ist eine menge benannter konstanter werte die unter einem einzigen typ zusammengefasst sind anstatt rohe ganzzahlen oder zeichenketten wie 1 2 pending active überall im code zu verstreuen geben sie jedem einen beschreibenden namen status pending color red und python garantiert dass dieser name immer auf denselben wert verweist dieses kapitel behandelt warum enums existieren und welche probleme sie lösen erstellen eines enums mit der enum klasse zugriff auf member nach name und wert iteration über ein enum auto python werte automatisch zuweisen lassen intenum enums die sich wie ganzzahlen verhalten flag kombinierbare bit flag enums methoden und properties zu einem enum hinzufügen aliase unique und _missing_ wann man enums gegenüber anderen mustern bevorzugt bevor sie dieses kapitel lesen sollten sie mit python klassen und objekten und python datentypen vertraut sein warum enums verwenden betrachten sie diese funktion die einen als einfache ganzzahl übergebenen bestellstatus verarbeitet def handle_order status if status 1 print order is pending elif status 2 print order is active elif status 3 print order is complete kopieren das funktioniert hat aber echte probleme magic numbers was bedeutet 2 für sich allein sie müssen bis zur funktionsdefinition zurückverfolgen keine validierung handle_order 99 tut stillschweigend nichts kein fehler keine warnung tippfehler sind unsichtbar handle_order 2 und handle_order 20 sind beide gültiges python refaktorierung ist riskant wenn sie entscheiden dass 1 etwas anderes bedeuten soll müssen sie jede 1 in der codebasis finden enums beheben all diese probleme die gleiche logik mit einem enum geschrieben ist selbstdokumentierend sicher und refaktorierungsfreundlich from enum import enum class orderstatus enum pending 1 active 2 complete 3 def handle_order status orderstatus if status orderstatus pending print order is pending elif status orderstatus active print order is active elif status orderstatus complete print order is complete handle_order orderstatus active order is active kopieren die absicht ist klar und python verhindert dass handle_order 99 versehentlich zu einem zweig passt ein enum erstellen importieren sie enum aus dem enum modul teil der python standardbibliothek keine installation erforderlich und erstellen sie eine unterklasse from enum import enum class color enum red 1 green 2 blue 3 kopieren jedes klassenattribut red green blue wird zu einem enum member die werte auf der rechten seite 1 2 3 können ganzzahlen zeichenketten oder ein beliebiger anderer typ sein die wahl liegt bei ihnen auf member zugreifen es gibt drei möglichkeiten auf ein enum member zuzugreifen from enum import enum class color enum red 1 green 2 blue 3 attribute access most common print color red color red by name square bracket notation print color green color green by value call the class with the value print color 3 color blue kopieren jedes member stellt zwei attribute zur verfügung print color red name red print color red value 1 kopieren verwenden sie name wenn sie eine für menschen lesbare bezeichnung benötigen für logging oder anzeige und value wenn sie den zugrunde liegenden wert an ein externes system eine datenbank eine api übergeben müssen repr und type print repr color red color red 1 print type color red enum color kopieren ein enum member ist eine instanz seiner enum klasse nicht von int oder str über ein enum iterieren enums sind iterierbar die iteration liefert member in der definitionsreihenfolge from enum import enum class color enum red 1 green 2 blue 3 for color in color print color name color value red 1 green 2 blue 3 kopieren sie können auch die zugehörigkeit prüfen print color red in color true kopieren dies macht enums praktisch für die befüllung von dropdown menüs den aufbau von switch ähnlichen dispatch tabellen oder die erstellung von auswahllisten für benutzereingaben auto automatische werte wenn die konkreten werte keine rolle spielen sie nur möchten dass jedes member eindeutig ist verwenden sie auto python weist aufeinanderfolgende ganzzahlen ab 1 zu from enum import enum auto class direction enum north auto south auto east auto west auto for d in direction print d name d value north 1 south 2 east 3 west 4 kopieren auto ist besonders nützlich wenn das enum im laufe der zeit wachsen wird und sie member nicht manuell umnummerieren möchten enum member vergleichen verwenden sie is oder zum vergleich von membern beide funktionieren aber is ist etwas schneller da enum member singletons sind jeder name verweist auf genau ein objekt from enum import enum class color enum red 1 green 2 blue 3 print color red is color red true print color red color red true print color red color green false kopieren ein einfaches enum member ist nicht gleich seinem rohen wert print color red 1 false kopieren das ist beabsichtigt es verhindert versehentliche gleichheit zwischen verschiedenen enums die dieselbe ganzzahl teilen class size enum small 1 print color red size small false different types kopieren wenn sie wertbasierte vergleiche benötigen z b member 1 verwenden sie stattdessen intenum siehe unten intenum enums die sich wie ganzzahlen verhalten intenum member sind auch reguläre python ganzzahlen das bedeutet sie können arithmetik vergleichsoperatoren verwenden und sie überall dort einsetzen wo ein int erwartet wird from enum import intenum class priority intenum low 1 medium 2 high 3 print priority high priority low true print priority medium 10 12 print priority high 3 true kopieren ein häufiger anwendungsfall ist das sortieren einer liste von enum membern from enum import intenum class level intenum low 1 med 2 high 3 levels level high level low level med print l name for l in sorted levels low med high kopieren wann enum gegenüber intenum bevorzugen intenums integer transparenz ist auch seine schwäche priority high 3 ist true sodass ein falsch eingetipptes literal 3 stillschweigend gleich priority high verglichen wird verwenden sie einfaches enum wenn sie strikte typsicherheit möchten und intenum nur wenn sie wirklich ganzzahlige arithmetik benötigen oder mit einer api interagieren müssen die mit rohen zahlen arbeitet flag kombinierbare bit flag enums flag ist für szenarien konzipiert in denen mehrere optionen gleichzeitig aktiv sein können seine member sind zweierpotenzen und sie kombinieren sie mit dem operator bitweises oder from enum import flag auto class permission flag read auto write auto execute auto all read write execute user permission read permission write print user permission write read print permission read in user true print permission execute in user false kopieren auto innerhalb von flag weist aufeinanderfolgende zweierpotenzen zu 1 2 4 8 sodass die kombination von membern mit nie zu mehrdeutigen ergebnissen führt verwenden sie flag für berechtigungssysteme feature toggles und jede situation in der sie einen kompakten satz boolescher schalter benötigen methoden und properties hinzufügen da ein enum eine klasse ist können sie ihm methoden und properties hinzufügen das hält verwandte logik innerhalb des typs anstatt sie über if elif ketten zu verteilen from enum import enum class httpstatus enum ok 200 created 201 not_found 404 internal_error 500 property def is_success self return 200 self value 300 property def is_error self return self value 400 def handle_response status httpstatus if status is_success print f status value status name request succeeded elif status is_error print f status value status name request failed handle_response httpstatus ok 200 ok request succeeded handle_response httpstatus not_found 404 not_found request failed kopieren sie können einem enum auch ein benutzerdefiniertes __init__ geben um zusätzliche daten pro member zu speichern geben sie die werte als tupel an from enum import enum class planet enum mercury 3 303e 23 2 4397e6 venus 4 869e 24 6 0518e6 earth 5 976e 24 6 37814e6 def __init__ self mass radius self mass mass self radius radius property def surface_gravity self g 6 67430e 11 return g self mass self radius 2 print round planet earth surface_gravity 2 9 8 print round planet mercury surface_gravity 2 3 7 kopieren das tupel mass radius wird zu den konstruktorargumenten self value enthält weiterhin das vollständige tupel aliase und unique wenn zwei member denselben wert teilen wird das zweite zu einem alias es wird zum ersten member aufgelöst aliase werden bei der iteration nicht zurückgegeben from enum import enum class status enum active 1 running 1 alias for active print status active is status running true print list status status active 1 kopieren aliase sind gelegentlich nützlich z b ein legacy name der auf einen neuen verweist können aber auch tippfehler verdecken verwenden sie den unique decorator um doppelte werte vollständig zu verbieten from enum import enum unique unique class status enum pending 1 active 2 inactive 3 trying to add a duplicate value to a unique enum raises valueerror valueerror duplicate values found in enum bad b a kopieren unique ist ein guter standard für jedes enum bei dem versehentliche aliasierung ein fehler wäre benutzerdefinierte suche mit _missing_ standardmäßig löst color unknown einen valueerror aus sie können die klassenmethode _missing_ überschreiben um nicht erkannte werte zu behandeln zum beispiel für eine suche ohne berücksichtigung der groß kleinschreibung from enum import enum class color enum red red green green blue blue classmethod def _missing_ cls value if isinstance value str for member in cls if member value value lower return member return none print color red color red print color green color green kopieren _missing_ empfängt den nicht gefundenen wert geben sie das passende member zurück oder none was python seinen standard valueerror auslösen lässt wann enums verwenden enums sind die richtige wahl wenn eine variable nur einen aus einer festen menge benannter zustände halten kann bestellstatus http verb kartenfarbe sie ungültige werte daran hindern möchten stillschweigend durchzukommen dasselbe konzept an mehreren stellen verglichen wird und sie eine einzige wahrheitsquelle möchten sie über alle gültigen werte iterieren müssen formular befüllen api dokumentieren sie benötigen wahrscheinlich kein enum wenn die menge der werte offen ist oder sich zur laufzeit ändert verwenden sie ein dictionary oder eine datenbank lookup tabelle sie nur zwei zustände benötigen true false mit einer klaren booleschen bedeutung ist einfacher die werte aus benutzereingaben stammen die gegen ein schema validiert werden müssen erwägen sie eine bibliothek wie pydantic die sich nahtlos mit python enums integriert für eng verwandte muster siehe python dataclasses für strukturierte daten mit standardwerten und python abstrakte klassen für die durchsetzung von schnittstellenverträgen über unterklassen hinweg wenn sie benannte konstantencontainer ohne den vollen enum mechanismus benötigen bietet das python collections modul namedtuple als alternative übungen übung what does color red do when color is an enum with a red member what does color red do when color is an enum with a red member returns the enum member color red by its name returns the integer value 1 directly raises a keyerror because enums don t support bracket access returns the string red prüfen was this page helpful yes no previous abstrakte klassen next listen duplikate entfernen on this page warum enums verwenden ein enum erstellen über ein enum iterieren auto automatische werte enum member vergleichen intenum enums die sich wie ganzzahlen verhalten flag kombinierbare bit flag enums methoden und properties hinzufügen aliase und unique benutzerdefinierte suche mit _missing_ wann enums verwenden übungen w3docs kostenlose tutorials beispiele übungen snippets und quizze für das web seit 2014 bücher html lernen css lernen javascript lernen git lernen java lernen php lernen python lernen üben übungen quizze probier editor tools html editor password generator html encoder code diff json beautifier unternehmen über uns kontakt datenschutzrichtlinie sprache english deutsch русский français español português italiano 2026 w3docs alle re...
|