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

2024-06-01 03:44:16 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python3中,我尝试将一个对象的属性连接到它的代理对象的等效属性(由其“_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)

返回的错误是:

^{pr2}$

我不明白,因为我以为controllercorresponding_proxy和{}都是字符串。在

我错过了什么?在

好的,jasonharper是对的,返回controller+'_proxy'就可以了! 然而,它现在又给我带来了另一个错误:

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

…它没有对整个对象列表执行操作,只对第一个对象执行操作,然后出现错误。在

好吧,别担心!'ls'命令还返回了我创建的代理,所以我的循环也尝试迭代代理本身。。。在

非常感谢大家!解决了的! 工作代码如下:

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)

Tags: 对象in代理formclsattributesproxy