假设我们有
function doW() {
console.log('do W');
}
function doX() {
console.log('do X');
}
function doY() {
console.log('do Y');
}
function doZ() {
console.log('do Z');
}
var fn = {
'11': doW,
'10': doX,
'01': doY,
'00': doZ
}
function doFn(a, b) {
fn[(a|0)+''+(b|0)+'']();
}
doFn(false, true);
给出了这些功能。这不是我可以修改的代码。 我们知道它们返回整数或它们的序列。
我想将返回值赋给变量,如果返回值是它们的序列,那么变量应该只取第一个整数。
Python中是否有内置的语法设备允许我这样做?
def f_1():
return (3, 4)
def f_2():
return 2
注意:假设我们不知道哪个函数返回序列,哪些函数只返回一个数字。
答案 0 :(得分:2)
答案 1 :(得分:1)
我不会去try-except语句。对我来说这太过分了。
我更有可能尝试做类似的事情:
result = function()
# this can be changed to abc.Sequence for more general approach
if isinstance(result, (list, tuple)):
result = result[0]
答案 2 :(得分:1)
转向另一个方向,将f_2
包装在另一个函数中,以确保循环体中调用的函数始终返回一个序列。
for function in [f_1, lambda : (f_2(),)]:
x = function()[0]
另一个函数调用的额外开销可能会使这种方法不合需要。