Сохранение переменной с методом в Python - PullRequest
0 голосов
/ 17 сентября 2011

Я пытаюсь, чтобы python вызывал переменную 'enstring', которую я установил, используя созданный мной метод 'crypto', чтобы я мог использовать ее в методе 'decrypto'.хочу 'crypto', чтобы установить 'enstring' в качестве переменной для закодированной строки.Однако, когда я вызываю переменную после использования метода «crypto», я получаю ошибку «enstring не определено».Как я могу это исправить?

Ответы [ 2 ]

3 голосов
/ 17 сентября 2011

Если вы хотите, чтобы класс сохранил enstring в качестве члена, вы должны присвоить его self.enstring:

class encryptString():

    def __init__(self):
        self.enstring = ''
        self.destring = ''

    def crypto(self, string):
        self.enstring = base64.b64encode(string)
        print self.enstring

    def decrypto(self):
        self.destring = base64.b64decode(self.enstring)
        print self.destring

(избегайте использования string в качестве имени переменной.)

1 голос
/ 17 сентября 2011

Используйте self.enstring оба раза. Сделайте то же самое для destring. Не передавайте enstring на decrypto, так как это будет частью self.

class encryptString():
    def crypto(self, string):
        self.enstring = base64.b64encode(string)
        print self.enstring
    def decrypto(self):
        self.destring = base64.b64decode(self.enstring)
        print self.destring

Таким образом, enstring и destring являются атрибутами экземпляра, поэтому они не теряются, когда возвращаются методы crypto и decrypto.

...