python执行列表和函数列表[重复]

2024-05-07

我正在将 Python 2.7 与 Autodesk Maya 结合使用。这是我的问题的一个例子:

import maya.cmds as m

def a(passedString):
    print('this'+passedString)
def b(passedString):
    print('that'+passedString)
def c(passedString):
    print('notThis'+passedString)
def d(passedString):
    print('ofCourse'+passedString)
string1 = [a(),b(),c(),d()]
string2 = [poly1,poly2,poly3,poly4]
for each in string2 and every in string1:
    m.select(each)
    every(each)

这可能看起来很简单,但我需要的是string2[0](一个函数)执行string1[0] and only string1[0].

下一个数组项也是如此。[1] with [1] and [2] with [2] and [3] with [3].

本质上,我试图减少代码并简化代码的执行方式,而不是为 20 多个单独的实例编写上述代码。


You can zip以元素方式迭代列表

for func, param in zip(string1, string2):
    func(param)

例如

string1 = [len, type, max]
string2 = ['hello', 5, [1,3,7]]
for func, param in zip(string1, string2):
    func(param)

Output

5
<class 'int'>
7

另请注意,在您的函数列表中,您不应添加()到函数的末尾,因为你会call如果您这样做,则该功能。只需保留函数名称本身(参见上面的string1例如列出)。

对于您的代码,循环看起来像

for each, every in zip(string2, string1):
    m.select(each)
    every(each)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python执行列表和函数列表[重复] 的相关文章

随机推荐