Как инкапсулировать метод объекта типа str?

MorfeUs

Новичок
Пользователь
Окт 17, 2022
4
0
1
Добрый вечер!
Есть класс str, у него есть метод upper()
Нужно переопределить этот метод, чтобы он каждый нечетный символ делал в верхнем регистре, а каждую четную в нижнем.

Правильный ли ход моих мыслей?:

class str:
def upper(self):
{тут цикл по обходу всех букв и приведение их к нужным регистрам}
 

Ципихович Эндрю

Активный пользователь
Пользователь
Мар 27, 2021
490
25
28
к чему класс, да и функция 50\50 нужна
Код:
string = 'future'
TeXt = ''.join(x.lower() if i%2 else x.upper() for i, x in enumerate(string))
print(TeXt)
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
Добрый вечер!
Есть класс str, у него есть метод upper()
Нужно переопределить этот метод, чтобы он каждый нечетный символ делал в верхнем регистре, а каждую четную в нижнем.

Правильный ли ход моих мыслей?:

class str:
def upper(self):
{тут цикл по обходу всех букв и приведение их к нужным регистрам}
Да
 

MorfeUs

Новичок
Пользователь
Окт 17, 2022
4
0
1
Задумка про меняющиеся буквы верхний и нижний регистр тут скорее усложняет основную задачу.
Хотелось бы переопределить штатную функцию upper() для класса str таким образом, чтобы вконце строки добавлялся "+"

Python:
class Str:
    def upper(self):
        return self + b

a = 'hello'
b = '+'
print(a.upper())

Выводится 'HELLO' . а надо 'hello+'
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
971
219
43
20
Москва
у тебя a не является объектом класса Str
 

MorfeUs

Новичок
Пользователь
Окт 17, 2022
4
0
1
у тебя a не является объектом класса Str
а каким классом является? str? type(a) = <class 'str'>
 

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 661
474
83
а каким классом является? str? type(a) = <class 'str'>
Python:
class MyStr:
    def __init__(self, string):
        self.string = string

    def upper(self):
        return ''.join(x.lower() if i % 2 else x.upper() for i, x in enumerate(self.string))


a = MyStr("hello")
print(a.upper())
 

Форум IT Специалистов