适用于Maya的Python:为什么不能在通配符的缩写中使用变量?

时间:2019-02-28 01:10:51

标签: python python-3.x scripting maya

我正在尝试在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中的对象,请告诉我它的名称,然后我将对其进行一些研究。目前,这是我知道如何在maya中搜索对象的唯一方法。

1 个答案:

答案 0 :(得分:0)

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

有很多不同的方法可以在Python中连接字符串以实现所需的功能:

使用%

'name%s' % '*'

使用字符串的format方法:

'{}*'.format(name)

仅使用+

name + '*'

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

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

相关问题