Ich erhalte einen Fehler beim Aufruf einer Methode, aber das Objekt, auf dem die Methode aufgerufen wird, definiert diese Methode.TypeError beim Aufruf einer ungebundenen Methode, aber Klasse _does_ definiere diese Methode
Hier ist, wo die Methode aufgerufen wird:
def interpreter(self, ast, expression, stack) # method in Parser.py file
...
elif isinstance(ast, ReadNode):
self.interpret(ast.location, environment, stack)
loc = stack.pop()
input = sys.stdin.read()
try:
num = int(input)
except:
sys.stderr.write("error: not an integer")
loc.set(num)
...
ich einen Fehler bin immer auf loc.set(num)
Traceback (most recent call last):
File "/home/filepath/Parser.py", line 846, in <module>
main()
File "/home/filepath/Parser.py", line 844, in main
p.parse()
File "/home/filepath/Parser.py", line 75, in parse
self.interpret(instructions, environment, stack)
File "/home/filepath/Parser.py", line 128, in interpret
loc.set(num)
TypeError: unbound method set() must be called with IntegerBox instance as first argument (got int instance instead)
Hier ist die IntegerBox Klasse:
from Box import Box
class IntegerBox(Box):
def __init__(self, value=0):
self.value = value
def get(self):
return self.value
def set(self, value):
self.value = value
Wenn ich durch Der Debugger, um den Typ loc
zu überprüfen, ist ein IntegerBox
Instanz. Warum denkt es, dass loc
dann keine IntegerBox-Instanz ist?
Sie müssen den Code von "interpretieren" zeigen. – BrenBarn