Ich habe eine benutzerdefinierte Str -Klasse geschrieben, weil ich eine Coallfold () -Methode haben möchte, die deutsche und skandinavische Umlauts ersetzt (ä, Å, ö, Ø, ü…). Es erbt aus der Standard -STR -Klasse und ersetzt nur die Methode der CaseFold () nach der Verwendung davon.
Code: Select all
class str(str):
def casefold(self):
umlauts: dict ={
'ä': 'ae',
'ö': 'oe',
'ü': 'ue',
'œ': 'oe',
'ø': 'oe',
'æ': 'ae',
'å': 'aa',
}
string_ = self.__repr__().casefold()
for letter in string_:
if letter in umlauts:
string_ = string_.replace(letter, umlauts[letter])
return string_
Wenn ich Str () verwende, um eine Zeichenfolge zu instanziieren, funktioniert es gut:
Code: Select all
str('äåöøü').casefold()
"'aeaaoeoeue'"
, aber wenn ich mit '' instanziiert, wird die Standard -STR -Klasse verwendet.
Code: Select all
'äåöøüß'.casefold()
'äåöøüss'
type(str('äåöøü'))
type('äåöøüß')
Gibt es eine Möglichkeit, dies zu ändern, um die Instanziierung mit '' in die benutzerdefinierte Klasse zu ändern? Ich konnte nichts dazu finden.