Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

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

python - Pass a function that accepts multiple arguments as an argument to a function

I'm studying how to pass a function as an argument. I've encountered a problem where I tried to invoke a passed-in function which accepts multiple arguments.

Code:

    def add(*numbers):
        total = 0
        for number in numbers:
            total += number
        return total

    def apply(func, value):
        return func(value)


    print(apply(add, (1,2,3)))

Output:

    Traceback (most recent call last):
      File "D:PythonPracest.py", line 13, in <module>
        print(apply(add, (1,2,3)))
      File "D:PythonPracest.py", line 9, in apply
        return func(value)
      File "D:PythonPracest.py", line 4, in add
        total += number
    TypeError: unsupported operand type(s) for +=: 'int' and 'tuple'

Thanks again!

question from:https://stackoverflow.com/questions/65682113/pass-a-function-that-accepts-multiple-arguments-as-an-argument-to-a-function

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

1 Answer

0 votes
by (71.8m points)

Have removed asterisk * from numbers in add Function

       def add(numbers):
           total = 0
           for number in numbers:
              total += number
           return total

       def apply(func, value):
          return func(value)  

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...