我正在尝试让python回想起我使用我创建的'crypto'方法设置的'enstring'变量,所以我可以在'decrypto'方法中使用它。
class encryptString():
def crypto(self, string):
enstring = base64.b64encode(string)
print enstring
def decrypto(self, enstring):
destring = base64.b64decode(enstring)
print destring
所以,我希望'crypto'将'enstring'设置为编码字符串的变量。但是,当我在使用'crypto'方法后调用变量时,我得到“未定义的enstring”错误。 我该如何解决这个问题?
答案 0 :(得分:3)
如果您希望班级将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 :(得分:1)
两次使用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
方法返回时,它们不会丢失。