Python - 由什么引起的类型错误?

时间:2018-03-15 16:16:54

标签: python python-3.x types maya

在Python 3中,我试图将对象的属性连接到其代理对象的等效属性(由其“_proxy”后缀标识)。

以下是代码:

import maya.cmds as mc

attributes = ['.t', '.r', '.s']

controllers = mc.ls('ctrl_Lip*')

def corresponding_proxy(controller):
    corresponding_proxy = mc.ls(controller+'_proxy')
    return corresponding_proxy

for controller in controllers :
    for attr in attributes :
        mc.connectAttr(controller+attr, corresponding_proxy(controller)+attr)

返回的错误是:

# Error: TypeError: file <maya console> line 13: can only concatenate list (not "str") to list # 

我不明白,因为我认为controllercorresponding_proxyattr都是字符串。

我错过了什么?

好的jasonharper是对的,回归controller+'_proxy'让它发挥作用! 但它现在又向我抛出了另一个错误:

# Error: RuntimeError: file <maya console> line 14: The destination attribute 'ctrl_Lip_Up_1_proxy_proxy.t' cannot be found. # 

...它并没有对整个对象列表进行操作,只是第一个对象,然后是错误。

好的,没关系! '''命令也返回了我创建的代理,所以我的循环也试图迭代代理本身...

非常感谢大家!解决了 ! 这是工作代码:

import maya.cmds as mc

attributes = ['.t', '.r', '.s']

controllers = mc.ls('ctrl_Lip*', tr=True)

for controller in controllers:
    mc.duplicate(controller, n=controller+'_proxy')

def corresponding_proxy(controller):
    return controller+'_proxy'

for controller in controllers:
    for attr in attributes:
        mc.connectAttr(controller+attr, corresponding_proxy(controller)+attr)

0 个答案:

没有答案