functools.partial(func[, *args][, **keywords])
只为函数提供部分参数,同样可以返回一个可操作的对象
import maya.cmds as cmds
from functools import partial
def myfunc(inst=None, thing=None, arg=None):
print 'arg: ', arg
print 'inst: ', inst
print 'thing: ', thing
data = cmds.button(inst.btnA, query=True, label=True)
print data
class ui():
def __init__(self, winName="winTheWindow"):
self.winTitle = "The Window"
self.winName = winName
def create(self):
if cmds.window(self.winName, exists=True):
cmds.deleteUI(self.winName)
cmds.window(self.winName, title=self.winTitle)
self.mainCol = cmds.columnLayout(adjustableColumn=True)
self.btnA = cmds.button(label='Press Me - External Func', c=partial(myfunc, self, 'say...'))
self.btnB = cmds.button(label='Press Me - External Func', c=partial(self.a, 'something...'))
self.btnC = cmds.button(label='Press Me - External Func No args', c=self.b)
cmds.showWindow(self.winName)
cmds.window(self.winName, edit=True, widthHeight=[250, 75])
def a(self, myarg=None, arg=None):
print 'myarg:', myarg
def b(self, arg=None):
print 'button require an argument'
print 'the argument passed in will always be the last argument'
#create the window
inst = ui()
inst.create()
只为函数提供部分参数,同样可以返回一个可操作的对象
import maya.cmds as cmds
from functools import partial
def myfunc(inst=None, thing=None, arg=None):
print 'arg: ', arg
print 'inst: ', inst
print 'thing: ', thing
data = cmds.button(inst.btnA, query=True, label=True)
print data
class ui():
def __init__(self, winName="winTheWindow"):
self.winTitle = "The Window"
self.winName = winName
def create(self):
if cmds.window(self.winName, exists=True):
cmds.deleteUI(self.winName)
cmds.window(self.winName, title=self.winTitle)
self.mainCol = cmds.columnLayout(adjustableColumn=True)
self.btnA = cmds.button(label='Press Me - External Func', c=partial(myfunc, self, 'say...'))
self.btnB = cmds.button(label='Press Me - External Func', c=partial(self.a, 'something...'))
self.btnC = cmds.button(label='Press Me - External Func No args', c=self.b)
cmds.showWindow(self.winName)
cmds.window(self.winName, edit=True, widthHeight=[250, 75])
def a(self, myarg=None, arg=None):
print 'myarg:', myarg
def b(self, arg=None):
print 'button require an argument'
print 'the argument passed in will always be the last argument'
#create the window
inst = ui()
inst.create()