<p><strong>编辑:正如Weeny博士所说,最好参考其他类似的主题。</strong></p>
<hr/>
<p>前段时间,我在我的博客上做了一个小小的提醒,为了能够测试所有不同的本地Maya UI命令使用方式,以及一种快速测试方法:</p>
<ul>
<li>经典maya字符串</li>
<li>函数作为参数</li>
<li>兰姆达</li>
<li><strong>functools.partial</strong></li>
<li>在PyCore.回调在</li>
</ul>
<p>每种情况下还提供了将变量作为参数传递给这些函数的示例。因为有时候你必须有能力。
总的来说,我完全推荐使用<strong>functools.partial</strong>,它只提供了比其他的优势(如果您忘记了PySide)。在</p>
<p><a href="http://i.stack.imgur.com/s0xPp.png" rel="nofollow">Maya UI types</a></p>
<pre><code>def function(*args):
print args
cmds.textFieldGrp(text, edit=True, text=str(args))
variable = 'Variable'
width = [1, 250]
align = [1, 'left']
window = cmds.window(title='UI and commands arguments.')
cmds.columnLayout()
cmds.textFieldGrp(label="\"function()\"", changeCommand="function()", columnWidth=width, columnAlign=align)
cmds.textFieldGrp(label="function", changeCommand=function, columnWidth=width, columnAlign=align)
cmds.textFieldGrp(label="\"function(variable)\"", changeCommand="function(variable)", columnWidth=width, columnAlign=align)
cmds.textFieldGrp(label="lambda x: function(variable)", changeCommand=lambda x: function(variable), columnWidth=width, columnAlign=align)
cmds.separator(style="double", height=20)
import functools
cmds.textFieldGrp(changeCommand=functools.partial(function), label='functools.partial(function)', columnWidth=width, columnAlign=align)
cmds.textFieldGrp(changeCommand=functools.partial(function, variable), label='functools.partial(function, variable)', columnWidth=width, columnAlign=align)
cmds.separator(style="single", height=20)
import pymel.core
cmds.textFieldGrp(changeCommand=pymel.core.Callback(function), label='pymel.core.Callback(function)', columnWidth=width, columnAlign=align)
cmds.textFieldGrp(changeCommand=pymel.core.CallbackWithArgs(function), label='pymel.core.CallbackWithArgs(function)', columnWidth=width, columnAlign=align)
cmds.textFieldGrp(changeCommand=pymel.core.CallbackWithArgs(function, variable), label='pymel.core.CallbackWithArgs(function, variable)', columnWidth=width, columnAlign=align)
cmds.separator(style="single", height=20)
text = cmds.textFieldGrp(label='RESULT: ', text='', width=500)
cmds.showWindow()
</code></pre>
<hr/>
<h2>使用类时</h2>
<p>因为它并不是为了使用类,所以当你在一个类中时,有些方法根本不起作用。在</p>
^{pr2}$