Я пытаюсь подклассьте объект Str, и добавляете пару методов к нему. Моя главная цель - научиться это сделать. Там, где я застрял, я должен подкласснуть строку в метаклассе и создать свой класс с этим Meta или Subclass Str напрямую?
А также, я думаю, мне нужно реализовать __ новое __ ()
Как-то, потому что мои пользовательские методы изменят мой строковый объект и вернут новый MyStry Obj.
Методы моего класса, должны быть полностью церемыми с методами утра, и всегда должны возвращать новый момент моего класса, когда пользовательские методы изменяли его. Я хочу иметь возможность сделать что-то подобное:
a = mystr("something")
b = a.lower().mycustommethod().myothercustommethod().capitalize()
issubclass(b,mystr) # True
Я хочу иметь все возможные способности, что у str
. Например, A = MyStr («что-то»)
, тогда я хочу использовать это, как,
A.Capitalize (). MyCustommethod (). Ниже ()
Это мое понимание того, что мне нужно реализовать __ новое __ ()
. Я так думаю, потому что методы строк, вероятно, попытаются создать новые экземпляры ул. Итак, если я перезапишу __ новое __ ()
, они предположительно вернут мой пользовательский класс Str. Однако я не знаю, как пройти аргументы своим пользовательским классам __ init __ ()
метода в этом случае. И я думаю, мне нужно использовать тип ()
, чтобы создать новый экземпляр в __ новых __ ()
методом правильно?