I am trying to make a machine code interpreter, in which, for the sake of effectiveness, I would like to use a direct relation between the code and the function that emulates its function. As I imagined, I would put emulating functions into an indexed list, and will call the appropriate function indexing the list by the machine code byte. My problem is that I do not know, how to wording the list members for internal methods of my class (it would not work neither with "self." nor with "myclass." prefix, too). Sample code below shows my problem: in functions[] list I would list that methods, what I want to connect with the indexes of the list. Please suggest me, what would the best (and hopefully the fastest executing) solution in Python 3.
class myclass:
values = [101, 102, 103, 104,105, 106, 107, 108]
functions = [getval, getnextval, getprevval]
def __init__(self):
pass
def getval(self, index):
return self.values[index]
def getnextval(self, index):
return self.values[index + 1]
def getprevval(self, index):
return self.values[index - 1]
def getfuncval(self, func, index):
return(self.functions[func](index))
myobj = myclass()
print(myobj.getval(0)) # -> 101
print(myobj.getnextval(1)) # -> 103
print(myobj.getfuncval(2, 3)) # would need to get result from getprevval(3) -> 103