Как к Subclass Str в Python

Я пытаюсь подклассьте объект 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 __ () метода в этом случае. И я думаю, мне нужно использовать тип () , чтобы создать новый экземпляр в __ новых __ () методом правильно?

26
задан dreftymac 1 July 2018 в 01:00
поделиться