mayaPython中函数运用*args,**kwargs 。重命名贴图
maya中使用函数,重命名贴图。
*得到的是元组。
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。
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贴图,然后重命名。
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

浙公网安备 33010602011771号