Functools-partial

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()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值