gpt4 book ai didi

python - 如何从Python3的列表中调用我自己的方法?

转载 作者:行者123 更新时间:2023-12-02 18:28:20 25 4
gpt4 key购买 nike

我正在尝试制作一个机器代码解释器,为了提高效率,我想在代码和模拟其功能的函数之间使用直接关系。正如我想象的那样,我会将模拟函数放入索引列表中,并调用按机器代码字节索引列表的适当函数。我的问题是我不知道如何为我的类的内部方法编写列表成员(它既不适用于“self.”,也不适用于“myclass.”前缀)。下面的示例代码显示了我的问题:在functions[]列表中,我会列出那些方法,我想要与列表的索引连接的方法。请建议我,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

最佳答案

您可以将函数的定义移动到__init__中。

def __init__(self):
self.functions = [self.getval, self.getnextval, self.getprevval]

还有一些其他选项,例如使用类方法。 (因为您的方法似乎不依赖于特定 myclass 实例的任何内部状态。)

关于python - 如何从Python3的列表中调用我自己的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69794606/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com