gpt4 book ai didi

python - Python 中带参数的双重方法调用的含义

转载 作者:行者123 更新时间:2023-12-01 06:55:33 24 4
gpt4 key购买 nike

我这里有这一行:

ex.format(’order’).format(’third’, ’second’, ’first’)

这个“format”的双重调用是如何调用的?如何实现?该计划是检查一个参数是否符合“顺序”,然后排列一个由单词“第三”、“第二”、“第一”组成的新字符串。但我不知道如何实现它。我什至找不到这个叫法。

请给我一个简单的例子。具有方法 meow 和方法调用的单个类:

meow("two times").meow("a", "b", "c")
meow("one time").meow("a", "b", "c")

and output: abcabc
and output: abc

最佳答案

这称为“方法链接”,当第一个方法调用返回一个可以调用第二个方法的对象时,这才有意义。

在您的示例中,如果 ex 是一个字符串,则 ex.format('order') 是另一个字符串,因此它的 .format可以立即调用方法来生成另一个字符串。

您建议的代码没有多大意义,因为首先,您传递一个带有用文字编写的数字的字符串,其中将数字作为 int 传递是有意义的;其次,单个 meow 方法不能(或者至少不应该)既设置重复次数,又生成重复先前设置次数的字符串。但是,通过编写两个单独的方法(实际上是一个函数和一个方法)来实现您所要求的行为是可能的:

def meow(n):
return Repeater(n)

class Repeater:
def __init__(self, n):
self.n = n
def meow(self, *strings):
return ''.join(strings) * self.n

用法:

>>> meow(2).meow('a', 'b', 'c')
'abcabc'
>>> meow(1).meow('a', 'b', 'c')
'abc'

关于python - Python 中带参数的双重方法调用的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58825544/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com