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

问题描述 投票:1回答:1

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

python python-3.x scripting maya
1个回答
0
投票

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

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

使用%

'name%s' % '*'

使用字符串的format方法:

'{}*'.format(name)

只需使用+

name + '*'

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

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

© www.soinside.com 2019 - 2024. All rights reserved.