作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试制作一个机器代码解释器,为了提高效率,我想在代码和模拟其功能的函数之间使用直接关系。正如我想象的那样,我会将模拟函数放入索引列表中,并调用按机器代码字节索引列表的适当函数。我的问题是我不知道如何为我的类的内部方法编写列表成员(它既不适用于“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/
我是一名优秀的程序员,十分优秀!