Make an Argument Optional in Python -


this question has answer here:

i'm making script gui box in cad program, , user selects 7 different surfaces in viewport. pass values onto function when user hits "ok"

the function passed looks this

def meshingtools(od_idsurf, trgsurf, pipebodysurf, sealsurf, threadsurf, bodysurf, cplgendsurf): 

the problem is: if user not need select 1 of surfaces, error saying, meshingtools() takes 7 non-keyword arguments (2 given)

how can around issue?

update:

i tried keyword arguments , not quite getting need.

def meshingtools(**kwargs): print kwargs

when select 1 surface, following out

{'pipebodysurf': (mdb.models['fullcal4'].rootassembly.instances['pinnew-1'].edges[151], mdb.models['fullcal4'].rootassembly.instances['pinnew-1'].edges[153])}

if try print pipebodysurf , says global name not defined.

any ideas?

final update (solved)

now see **kwargs creates dictionary, instead of using parameter name in rest of code, have use kwargs['parameter'] , use values

you can use arbitrary argument passing * operation :

def meshingtools(*args):   in args:       #do stuff   

functions can use special argument preceded 1 or 2 * character collect arbitrary number of arguments. (* positional arguments , ** keyword arguments)


Comments

Popular posts from this blog

PHP DOM loadHTML() method unusual warning -

python - How to create jsonb index using GIN on SQLAlchemy? -

c# - TransactionScope not rolling back although no complete() is called -