@Amalat

Как внести код в класс?

я написал код который транскриптом переводит с ру на анг

ss = (rs, en) // списки букв
cc = {r: e for r, e in zip(*ss)}
translate = lambda x: ''.join([cc[i] for i in x])

text = u'привет'
print(translate(text))

Out: 'privet'


Подскажите как его поместить в класс?
  • Вопрос задан
  • 123 просмотра
Решения вопроса 1
snaiper04ek
@snaiper04ek
Не стреляйте в эникея, он админит как умеет
отредактировал, это финальная версия:
class Message:
    def __init__(self, message):
        self.rs = ['п', 'р', 'и', 'в', 'е','т']
        self.en = ['p', 'r', 'i', 'v', 'e', 't']
        self.ss = (self.rs, self.en)
        self.cc = {r: e for r, e in zip(*self.ss)}
        self.text = message

    def translate(self, text):
        trans = ''.join([self.cc[i] for i in text])
        return trans

    def show(self):
        print(self.text)
        
    def __repr__(self):
        return self.translate(self.text)


chat_message1 = Message('привет')
chat_message1.show()
print(chat_message1)


Все нужные для работы параметры хранятся в классе

Класс хранит оригинальное сообщение, можем его распечатать методом .show(), а так же можем распечатать сам экземпляр, и благодаря тому, что __repr__ переопределён, он выдаст нам тринслитированное сообщение.
Если же оригинальное сообщение хранить не нужно, то вместо
self.text = message
...
    def __repr__(self):
        return self.translate(self.text)

записать
self.text = self.translate(message)
...
    def __repr__(self):
        return self.text

тогда экземпляр будет хранить уже транслитированное сообщение, и его же отдаст __repr__
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы