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

  

原文地址:https://www.cnblogs.com/3lina/p/10304091.html