首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python for maya:为什么我不能将变量与通配符连接在一起?

Python for maya:为什么我不能将变量与通配符连接在一起?
EN

Stack Overflow用户
提问于 2019-02-28 09:10:51
回答 1查看 441关注 0票数 1

我正在尝试使用maya中的"ls“python命令,通过使用通配符来列出名称中具有匹配字符串的特定对象。

如下所示的简单示例代码:

代码语言:javascript
复制
from maya.cmds import *
list = ls('mesh*')

这段代码可以工作,并将返回名称中包含匹配字符串的对象列表,但是,我希望使用变量而不是在字符串中进行硬编码。更像这样:

代码语言:javascript
复制
from maya.cmds import *
name = 'mesh'
list = ls('name*')

或者像这样:

代码语言:javascript
复制
from maya.cmds import *
name = 'mesh'
list = ls('name' + '*')

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

谢谢。

JD

PS。如果有更好的方法在maya中查询对象,请让我知道它叫什么,我会做一些研究。目前,这是我知道如何在maya中搜索对象的唯一方法。

EN

回答 1

Stack Overflow用户

发布于 2019-03-01 10:05:47

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

在Python中,有许多不同的方法可以连接字符串以实现您想要的效果:

使用%

代码语言:javascript
复制
'name%s' % '*'

使用字符串的format方法:

代码语言:javascript
复制
'{}*'.format(name)

简单地使用+

代码语言:javascript
复制
name + '*'

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54916889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档