Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
257 views
in Technique[技术] by (71.8m points)

Pass functional arguments through ternary operator in Python

This might be a basic question because I am still learning Python. But let's suppose I want to do something like this,

def add(a, b):
    return a + b

a, b, c, d = 1, 2, 3, 4
sum = add(a, b if b == 2 else c, d)

Basically, I am trying to pass multiple functional args from inside a ternary operator(and I want a similar solution, if possible). This code currently gives the following error:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: add() takes 2 positional arguments but 3 were given

What else have I tried:

  • add((a, b) if b == 2 else (c, d))
  • add(*(a, b) if b == 2 else *(c, d))
question from:https://stackoverflow.com/questions/65852119/pass-functional-arguments-through-ternary-operator-in-python

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

what about

add(*(a, b) if b == 9 else (c, d))

It is similar to

add(*((a, b) if b == 9 else (c, d)))

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...