ValueError:没有对象与名称匹配:在Maya Python中

时间:2019-01-26 02:45:18

标签: python maya

我有一个返回错误

的代码
ValueError: No object matches name: s

我不确定为什么要寻找对象s

代码如下

import maya.cmds as cmds

def createOffsetGrp(objSel):

    for obj in objSel:
        p = cmds.listRelatives(obj,parent=True)
        print (p)

createOffsetGrp('spine02_jnt')

按预期,打印命令应该吐出Spine01_jnt的父级Spine02_jnt

有什么我想念的吗?

2 个答案:

答案 0 :(得分:1)

由于使用Python进行鸭子输入,有时很难发现此类错误。这里发生的是您的函数期望将数组作为参数,但是您正在传递字符串。

Python还通过列出单个字符来支持对字符串进行迭代,这就是为什么它在s中寻找spine02_jnt的原因。在数组中传递字符串应该可以解决您的问题:

createOffsetGrp(['spine02_jnt'])

答案 1 :(得分:0)

除了crazyGamer之外,您还可以在字符串上提供一些支持:

import maya.cmds as cmds

def createOffsetGrp(objSel):
    # isinstance is used to check the type of the variable :
    # i.e: isinstance(objSel, int)
    # basestring is a type combining unicode and string types
    if isinstance(objSel, basestring):
        objSel = [objSel]
    for obj in objSel:
        p = cmds.listRelatives(obj,parent=True)
        print (p)

createOffsetGrp('spine02_jnt')