Создание метода «reset» в python для сброса отредактированной строки - PullRequest
0 голосов
/ 27 января 2019

Я учусь на уроках и бездельничаю с ними.Я пытаюсь отредактировать строку и вернуть ее к первоначальному виду.Но я не могу понять, как сделать метод сброса.Я попытался создать переменную с именем «original_string» и присвоить ей периметр «string» в методе init, чтобы я мог просто назначить self.string для original_string.Я также попытался создать переменную «original_string» вне класса.Но в методах кажется, что я не могу получить доступ к переменным, которые были созданы вне этого метода.Любые идеи о том, как создать метод сброса?

class Reverse:
    original_string = "Some string that will be edited"

    def __init__(self, string):
        self.string = string
        original_string = string

    def __str__(self):
        return self.string

    def reverseAll(self):
        newString = ""
        for char in self.string:
            newString = char + newString
        self.string = newString

    def reverseOrder(self):
        newString = ""
        for word in self.string.split():
            newString = str(word) + " " + newString
        self.string = newString

    def reset(self):
        #Reset the edited string back to the original
        self.string = original_string

string = Reverse("Trying to edit this string and reset it back to normal.")
print(string)
string.reverseOrder()
string.reverseAll()
string.reset()
print(string)

1 Ответ

0 голосов
/ 27 января 2019

Просто добавьте флаг self в конце

In [1]: class Reverse:
    ...:     original_string = "Some string that will be edited"
    ...:
    ...:     def __init__(self, string):
    ...:         self.string = string
    ...:
    ...:
    ...:     def __str__(self):
    ...:         return self.string
    ...:
    ...:     def reverseAll(self):
    ...:         newString = ""
    ...:         for char in self.string:
    ...:             newString = char + newString
    ...:         self.string = newString
    ...:
    ...:     def reverseOrder(self):
    ...:         newString = ""
    ...:         for word in self.string.split():
    ...:             newString = str(word) + " " + newString
    ...:         self.string = newString
    ...:
    ...:     def reset(self):
    ...:         #Reset the edited string back to the original
    ...:         self.string = self.original_string
    ...:
    ...: string = Reverse("Trying to edit this string and reset it back to normal.")
    ...: print(string)
    ...: string.reverseOrder()
    ...: string.reverseAll()
    ...: string.reset()
    ...: print(string)
    ...:
    ...:
Trying to edit this string and reset it back to normal.
Some string that will be edited   ```
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...