from dataclasses import dataclass from typing import Iterator # kleine Hilfestellung mit `Str` kann man sowohl `str` als auch `String` meinen type Str = 'String' | str @dataclass class String: def __post_init__(self, s: str) -> None: pass def __str__(self) -> str: pass def __add__(self, other: Str) -> 'String': pass def __radd__(self, other: Str) -> 'String': pass def __len__(self, other: Str) -> int: pass def __eq__(self, other: Str) -> bool: pass def __iter__(self) -> Iterator[chr]: pass def concat(self, other: Str) -> 'String': pass def contains(self, other: Str) -> bool: pass def substring(self, start: int, end: int) -> 'String': pass def strip(self, chars: Str = ' ' + '\n' + '\t' + '\r') -> 'String': pass def replace(self, old: Str, new: Str, count = -1) -> 'String': pass def add_prefix(self, prefix: Str) -> 'String': pass def add_suffix(self, suffix: Str) -> 'String': pass def join[T](self, xs: Iterator[T]) -> 'String': pass