1
我想在一个Enigma机器中旋转转子的类中创建一个函数。然而,当我试图告诉它使用它不接受它,如下面的代码展示了其转子:类功能不接受自己。变量
from collections import deque
class Rotors:
def __init__(self):
self.a = deque("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
self.vi = deque("JPGVOUMFYQBENHZRDKASXLICTW")
self.vii = deque("NZJHGRCXMYSWBOUFAIVLPEKQDT")
self.viii = deque("FKQHTLXOCBJSPDZRAMEWNIUYGV")
self.rotor_vi = [self.a, self.vi]
self.rotor_vii = [self.a, self.vii]
self.rotor_viii = [self.a, self.viii]
self.rotors = [self.rotor_vi, self.rotor_vii, self.rotor_viii]
self.reflector = deque("FVPJIAOYEDRZXWGCTKUQSBNMHL")
def rotate_rotor(self, rotor):
rotor.rotate(1)
x = Rotors()
x.rotate_rotor(self.vi)
其中给出的输出:
Traceback (most recent call last):
File "C:\Users\Aaron\Documents\Programs\Enigma.py", line 20, in <module>
x.rotate_rotor(self.vi)
NameError: name 'self' is not defined
[Finished in 0.1s]
'self' does not exist ** outside ** the class methods ... – jonrsharpe