【问题标题】:How does calling a function or class with multiple () work? python使用多个 () 调用函数或类如何工作? Python
【发布时间】:2022-06-23 01:37:26
【问题描述】:

您能否建议或提供链接: 这个怎么运作?使用 multiple() 调用函数或类如何工作?为什么调用以这样的顺序发生以使这些函数起作用。

def chain_sum(number):
    result = number

    def wrapper(number_2=None):
        nonlocal result
        if number_2 is None:
            return result
        result += number_2
        return wrapper

    return wrapper


print(chain_sum(5)()) #5
print(chain_sum(5)(2)()) #7
print(chain_sum(5)(100)(-10)()) #95


class chain_sum_0(int):
    def __call__(self, addition=0):
        return chain_sum(self + addition)


print(chain_sum_0(5)) #5
print(chain_sum_0(5)(2)()) #7
print(chain_sum_0(5)(100)(-10)()) #95

【问题讨论】:

    标签: python function


    【解决方案1】:

    您没有调用具有多个 ()s 的函数。你用one()调用一个函数,如果返回值是可调用的,你可以立即调用itf()() 等价于t = f(); t()

    您可以将() 视为适用于任何可调用值表达式的(伪)运算符。例如,(f if condition else g)() 之类的内容是合法的,相当于 f() if condition else g()

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      相关资源
      最近更新 更多