用于maya的Python:为什么我不能在与通配符的串联中使用变量?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于maya的Python:为什么我不能在与通配符的串联中使用变量?相关的知识,希望对你有一定的参考价值。

我正在尝试在maya中使用“ls”python命令,在名称中使用通配符列出名称中包含匹配字符串的某些对象。

简单的示例代码如下:

from maya.cmds import *
list = ls('mesh*')

此代码有效,将返回名称中具有匹配字符串的对象列表,但是,我想在字符串中使用变量而不是硬编码。更像是这样的:

from maya.cmds import *
name = 'mesh'
list = ls('name*')

或者像这样:

from maya.cmds import *
name = 'mesh'
list = ls('name' + '*')

但是,在两个示例中,它都返回一个与第一个不同的空列表。我不确定为什么会这样,因为在这些例子中,字符串连接应该像第一个例子一样出现'mesh *'。我在这个网站上找不到答案,所以我选择提问。

谢谢。

JD

PS。如果有更好的方法来查询maya中的对象,请告诉我它的名称,我将对它进行一些研究。目前,这是我了解如何在玛雅中搜索对象的唯一方法。

答案

只要在变量name周围添加引号,就像这个'name'一样,实际上只是创建一个新字符串而不是引用变量。

有许多不同的方法可以在Python中连接字符串以实现您的需求:

使用%

'name%s' % '*'

使用字符串的format方法:

'{}*'.format(name)

只需使用+

name + '*'

所有这些都将产生相同的输出,'mesh*',并将与cmds.ls一起使用

我个人坚持使用formatand this page demonstrates a lot of reasons why.

以上是关于用于maya的Python:为什么我不能在与通配符的串联中使用变量?的主要内容,如果未能解决你的问题,请参考以下文章

MAYA卸载就不能装了??没有人能解决??

在 Maya 中使用 mel/python 创建一个简单的层次结构

如何使用 python 在 Maya 中设置目录?目前使用 PyQt4,但愿意接受任何建议

怎么用python完成maya里的渲染设置

自学Maya给初学者几点建议 很少maya做模型的,基本都使用zbrush

为啥我不能创建在与类定义相同的命名空间中定义的 C++ 类的实例?