Python для Maya: почему я не могу использовать переменную в конкатенации с подстановочным знаком? - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь использовать команду python "ls" в maya, чтобы вывести список определенных объектов с соответствующей строкой в ​​имени в конкатенации с подстановочным знаком.

Простой пример кода, подобный этому:

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, дайте мне знать, как он называется, и я проведу некоторое исследование, что это такое.На данный момент это единственный способ узнать, как искать объекты в майе.

1 Ответ

0 голосов
/ 01 марта 2019

Как только вы добавляете кавычки вокруг своей переменной name, как это 'name', вы на самом деле просто создаете новую строку вместо ссылки на переменную.

Существует много различных способов объединенияСтрока в Python для достижения желаемого:

Использование %:

'name%s' % '*'

Использование метода format для строки:

'{}*'.format(name)

Просто использование +:

name + '*'

Все они приведут к одинаковому выводу 'mesh*' и будут работать с cmds.ls

Лично я придерживаюсь format, , и этостраница демонстрирует множество причин, почему.

...