mosaic
mosaic

Reputation: 335

Using a tuple as function arguments

For this function I can use tuple elements as arguments:

light_blue = .6, .8, .9
gradient.add_color_rgb(0, *light_blue)

What if i have to add another argument after the tuple?

light_blue = .6, .8, .9
alpha = .5
gradient.add_color_rgba(0, *light_blue, alpha)

does not work. What does work is

gradient.add_color_rgba(0, *list(light_blue)+[alpha])

which does not really look better than

gradient.add_color_rgba(0, light_blue[0], light_blue[1], light_blue[2], alpha)

Is there a better way to do this?

Upvotes: 3

Views: 884

Answers (2)

mikej
mikej

Reputation: 66343

You can simplify the expression slightly by making a tuple instead of a list containing light_blue and alpha e.g.

gradient.add_color_rgba(0, *(light_blue + (alpha,)))

Upvotes: 2

Daniel Kluev
Daniel Kluev

Reputation: 11325

You could call it like gradient.add_color_rgba(0, *light_blue, alpha=alpha) if you know parameter name for the alpha.

Upvotes: 6

Related Questions