Nie posiada ona wprawdzie rozbudowanych funkcji podobnych do javadoc, ale jest dostępna w czasie wykonania programu, a więc i w trybie interaktywnym.

Emulowanie typów, przeciążanie operatorów, wywoływanie jako funkcje Python pozwala dopasowywać własności danej klasy w szerokim zakresie. Implementując odpowiednie metody można sprawić, by obiekty danej klasy zachowywały się jak kolekcje, liczby, a nawet funkcje.

Przykład:

class Emulator: def __call__(self, x): print(f'Ten Emulator wywołano jako funkcję z parametrem x = {x}')

def __getitem__(self, key): return f'{key}-ty element w kontenerze klasy Emulator'

e = Emulator() e('abc') e(123) print(e['def']) print(e)

Uruchomienie powyższego kodu da następujący rezultat:

Ten Emulator wywołano jako funkcję z parametrem x = abc Ten Emulator wywołano jako funkcję z parametrem x = 123 def-ty element w kontenerze klasy Emulator 456-ty element w kontenerze klasy Emulator

Zmienna liczba argumentów funkcji Możliwe jest tworzenie funkcji ze zmienną liczbą argumentów, argumentami o wartościach domyślnych (podobnie jak w C++ lub C#), a także wywoływanie funkcji z użyciem argumentów nazwanych, z podaniem nazw parametrów.

Przykład: