【问题标题】:What does this PyMEL statment do?这个 PyMEL 语句有什么作用?
【发布时间】:2015-11-26 10:19:38
【问题描述】:

这句话来自《实用玛雅编程》一书。作者后来继续在我理解的type()dir() 函数中使用xform 和shape 作为参数。

>>> xform, shape = pmc.polySphere()

为什么/如何两者 xform 和 shape 等于 pmc.polysphere?...它们不是多余的吗?因为在实例化球体时无论如何都会创建变换和形状节点?这会在以后创建其他形状时导致复杂化吗?

xform 在脚本编辑器中是蓝色的,这是什么意思,如何用作变量的名称?

【问题讨论】:

  • 几乎所有创建对象的 maya 命令都返回两个值:第一个是变换节点,第二个是形状节点。此示例仅使用常规 python 一次性分配多部分返回的部分的能力。
  • 好的,谢谢.. 那么与 value1 和 value2 相比,将值分配给 xform 和 shape 有什么值得注意的地方
  • 不,只是变量名。好的变量名 = 理智。

标签: python maya pymel


【解决方案1】:

进一步扩展答案。

您可能希望执行 pmc.polySphere() 只会给您它的变换,但它实际上会返回其变换和形状节点的列表:[nt.Transform(u'pSphere1'), nt.PolySphere(u'polySphere1')]

你可以像这样分配变量:

sphereObj = pmc.polySphere()
xform = sphereObj[0]
shape = sphereObj[1]

但是一次性解压列表并将其分配给您的变量更具可读性和 Pythonic:

xform, shape = pmc.polySphere()

只要知道列表的长度,就可以单行:

a, b, c, d = [1, 2, 3, 4]

虽然大多数时候您可能只需要转换,所以您也可以随时这样做:

xform = pmc.polySphere()[0]

【讨论】:

    【解决方案2】:

    pmc.polySphere() 返回一个包含两个元素的序列。 The first is assigned to xform, and the second to shape.

    >>> a, b = [1, 2]
    >>> a
    1
    >>> b
    2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-12
      • 2012-04-02
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 2017-08-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多