mayaPython中函数运用*args,**kwargs 。重命名贴图
maya中使用函数,重命名贴图。
*得到的是元组。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def process_all_textures( * args): print (args[ 0 ],args[ 1 :]) tx1 = cmds.shadingNode( 'file' , asTexture = True ) tx2 = cmds.shadingNode( 'file' , asTexture = True ) tx3 = cmds.shadingNode( 'file' , asTexture = True ) tx4 = cmds.shadingNode( 'file' , asTexture = True ) tex_list = [tx1,tx2,tx3,tx4] process_all_textures( 'grass_' ,tex_list) #('grass_', ([u'file1', u'file2', u'file3', u'file4'],)) process_all_textures( 'grass_' , * tex_list) #('grass_', (u'file1', u'file2', u'file3', u'file4')) |
** 键值字典
setdefault() 字典对象使用的函数。第一个位置是键,第二个位置没有值,则返回值None。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import maya.cmds as cmds def process_all_textures( * * kwargs): pre = kwargs.setdefault( 'prefix' , 'my_' ) texture = kwargs.setdefault( 'texture_node' ) print ( '%s%s' % (pre,texture)) process_all_textures() #my_None process_all_textures(prefix = 'aa_' ) #aa_None process_all_textures(texture_node = texture) #my_file3 tx1 = cmds.shadingNode( 'file' , asTexture = True ) arg_dict = { 'prefix' : 'grass' , 'texture_node' :tx1} process_all_textures( * * arg_dict) #grassfile1 |
pre没有指定prefix值。就会用my_代替。
texture没有指定,会用None代替
也可以用**字典传递给函数
process_all_textures(**arg_dict)
返回值 return
可以处理命令啊
这里创建一个file贴图,然后重命名。
1 2 3 4 5 6 7 8 9 10 11 | import maya.cmds as cmds texture = cmds.shadingNode( 'file' ,asTexture = True ) def process_all_textures( * * kwargs): prefix = kwargs.setdefault( 'prefix' , 'my_' ) texture = kwargs.setdefault( 'texture_node' ) return cmds.rename(texture, '%s%s' % (prefix,texture)) texture = process_all_textures(texture_node = texture) print texture #my_file1 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步