0 Tage Serie
Code-Bibliothek

Code, der lesenswert ist.

Sorgfältig kuratierte Snippets — TypeScript, Python, Rust, Go und mehr. Jedes mit einer Zeile-für-Zeile-Erklärung, damit du Code so liest, wie die Leute ihn geschrieben haben.

3498 Snippets · 10 Sprachen
▶ Lernen starten
Python · MittelSnippet

Generator-Ausdrücke für Speichereffizienz

Im Gegensatz zu Listen-Abstraktionen verwenden Generator-Ausdrücke Klammern und liefern Elemente einzeln nacheinander. Dies ist bei großen Datensätzen deutlich speichereffizienter.

snippet.py
python
1
2
3
4
5
6
7
import sys
large_list = [x for x in range(1000000)]
large_gen = (x for x in range(1000000))
print(sys.getsizeof(large_list)) # ~8MB
print(sys.getsizeof(large_gen)) # ~100 bytes
PerformanceDatentypen
Python · MittelSnippet

Property-Dekoratoren zur Kapselung

Der @property-Dekorator ermöglicht es, Methoden zu definieren, auf die wie auf Attribute zugegriffen werden kann. Er bietet einen sauberen Weg, Validierung und Kapselung in Klassen zu implementieren.

snippet.py
python
1
2
3
4
5
6
7
8
9
10
11
12
13
class Circle:
def __init__(self, radius):
self._radius = radius
@property
def radius(self):
return self._radius
@radius.setter
def radius(self, value):
if value < 0:
raise ValueError('Radius cannot be negative')
self._radius = value
OOPBest Practices
Python · MittelSnippet

Listen-Abstraktion mit bedingter Logik

Listen-Abstraktionen bieten eine prägnante Möglichkeit, Listen zu erstellen. Dieses fortgeschrittene Muster enthält eine 'if'-Bedingung, um Elemente während der Transformation zu filtern.

snippet.py
python
1
2
3
numbers = [1, 2, 3, 4, 5, 6]
squared_evens = [x**2 for x in numbers if x % 2 == 0]
print(squared_evens) # Output: [4, 16, 36]
SyntaxBest Practices
Python · MittelSnippet

Ressourcenverwaltung mit Kontextmanagern

Die 'with'-Anweisung vereinfacht die Ausnahmebehandlung, indem sie Standard-Aufräumarbeiten kapselt, wie z.B. das automatische Schließen einer Datei nach Beendigung des Blocks.

snippet.py
python
1
2
3
4
5
6
try:
with open('data.txt', 'r') as file:
content = file.read()
except FileNotFoundError:
print('File not found')
# File is automatically closed here even if an error occurs
FehlerbehandlungBest Practices
Python · MittelSnippet

Entpacken mit *args und **kwargs

*args ermöglicht es einer Funktion, eine beliebige Anzahl von Positionsargumenten als Tupel zu akzeptieren, während **kwargs beliebige Schlüsselwortargumente als Dictionary akzeptiert.

snippet.py
python
1
2
3
4
5
6
def versatile_func(required, *args, **kwargs):
print(f'Required: {required}')
print(f'Additional positional: {args}')
print(f'Keyword arguments: {kwargs}')
versatile_func('Main', 1, 2, mode='fast', debug=True)
FunktionenSyntax
Python · MittelSnippet

Eigene Exceptions erstellen

Das Definieren eigener Exceptions macht deine Fehlerbehandlung spezifischer und lesbarer. Es ermöglicht Nutzern deines Codes, gezielte Fehler statt generischer abzufangen.

snippet.py
python
1
2
3
4
5
6
7
class ValidationError(Exception):
"""Raised when input data is invalid."""
pass
def check_age(age):
if age < 0:
raise ValidationError("Age cannot be negative")
FehlerbehandlungBest Practices
Python · MittelSnippet

Asynchrones Programmieren mit async/await

Asyncio wird für die gleichzeitige Code-Ausführung mit der async/await-Syntax verwendet. Es ist ideal für I/O-gebundene Aufgaben wie Web-Anfragen oder Datenbank-Abfragen.

snippet.py
python
1
2
3
4
5
6
7
8
9
10
import asyncio
async def fetch_data():
print("Fetching...")
await asyncio.sleep(1)
return {"id": 1}
async def main():
result = await fetch_data()
print(result)
Async & ConcurrencyKontrollstrukturen
Python · MittelSnippet

Klassen vereinfachen mit Dataclasses

Der @dataclass-Dekorator generiert automatisch gängige Methoden wie __init__, __repr__ und __eq__ basierend auf Typ-Hinweisen, wodurch Boilerplate-Code in datenorientierten Klassen reduziert wird.

snippet.py
python
1
2
3
4
5
6
7
8
9
10
from dataclasses import dataclass
@dataclass
class Product:
name: str
price: float
quantity: int = 0
def total_value(self) -> float:
return self.price * self.quantity
OOPDatentypen