当Maya找不到这些属性时,如何从列表中连接属性?

2024-04-26 21:12:15 发布

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

我要做的是将属性从对象A批连接到对象B。只是转换属性,所以,我这样做了:

import maya.cmds as mc

sel = mc.ls(sl=True)

mc.connectAttr(sel[0]+'.t', sel[1]+'.t')
mc.connectAttr(sel[0]+'.r', sel[1]+'.r')
mc.connectAttr(sel[0]+'.s', sel[1]+'.s')

然后我想如果我创建一个包含(translaterotatescale)的列表,然后迭代该列表,而不是指定".t"".r"和{}。在

所以我这样做了:

^{pr2}$

…控制台说

# Error: AttributeError: file <maya console> line 7: 'unicode' object has no attribute 'attr' # 

我做了一些搜索,但没有帮助我理解。有人能解释一下为什么会发生这种情况,以及我如何才能达到预期的效果?在


Tags: 对象importtrue列表属性asmcls
1条回答
网友
1楼 · 发布于 2024-04-26 21:12:15

最后一行必须是:

mc.connectAttr(sel[0]+attr, sel[1]+attr)

您使用.就好像它是Python中的字符串连接错误一样,而+则是。在

相反,.是属性运算符,它解释了错误¹。当Python试图解释sel[0].attr时,它首先注意到sel[0]是一个unicode对象,然后尝试从该对象获取属性attr。此属性与循环中的attr无关,尤其不存在。因此您得到了错误消息。在


¹Python中的每个对象都有一些属性,您可以使用该语法访问这些属性,这些属性取决于类型对象。要熟悉这个尝试:

^{pr2}$

相关问题 更多 >