Rob*_*rum 9 javascript python arrays dictionary data-structures
我正在构建一个应用程序,我需要迭代一系列基本相同的步骤,节省了很少的代码(~15行).步骤数将根据项目的配置方式而有所不同,因此为每个潜在实例创建单独的函数似乎有点愚蠢.
在JavaScript中,我会做这样的事情:
var switches = [true, true, false, true];
var holder = {
0: function() { /* do step0 */ }
1: function() { /* do step1 */ }
2: function() { /* do step2 */ }
3: function() { /* do step3 */ }
// ...etc...
}
for (var i = 0; i < switches.length; i++)
if (switches[i])
holder[i]();
Run Code Online (Sandbox Code Playgroud)
有没有办法在python中做类似的事情?我唯一能想到的是这样的事情:
switches = [True, True, False, True]
class Holder(object):
@staticmethod
def do_0():
# do step0
@staticmethod
def do_1():
# do step 1
# ...etc...
def __repr__(self):
return [self.do_0, self.do_1, ...]
for action in Holder:
action()
Run Code Online (Sandbox Code Playgroud)
如果我有大量的步骤,这似乎非常低效.还有什么更好的办法吗?
看起来 Python 中没有办法做到这一点,这是一个故意做出的设计决定,因为它被认为不符合 Python 风格。哦,好吧,看起来我一直在定义方法,然后手动将它们添加到列表中以进行迭代。
来源: https: //softwareengineering.stackexchange.com/a/99245
| 归档时间: |
|
| 查看次数: |
724 次 |
| 最近记录: |