[英]Meaning of doubled method call with arguments in Python
我在这里有这一行:
ex.format(’order’).format(’third’, ’second’, ’first’)
这种“格式”的双重调用是如何调用的? 如何实施? 计划是检查参数是否为“顺序”,然后安排由“第三”、“第二”、“第一”等词组成的新字符串。 但我不知道如何实现它。 我什至找不到这是怎么称呼的。
请给我一个简单的例子。 使用方法 meow 和方法调用的单个 class:
meow("two times").meow("a", "b", "c")
meow("one time").meow("a", "b", "c")
and output: abcabc
and output: abc
这称为“方法链接”,当第一个方法调用返回一个 object 时,可以调用第二个方法时,这才有意义。
在您的示例中,如果ex
是字符串,则ex.format('order')
是另一个字符串,因此可以立即调用其.format
方法来生成另一个字符串。
您建议的代码没有多大意义,因为首先,您正在传递一个字符串,其中包含一个用单词编写的数字,而将数字作为int
传递是有意义的; 其次,单个meow
方法不能(或至少不应该)既设置重复次数,又产生重复先前设置次数的字符串。 但是,可以通过编写两个单独的方法(实际上是一个 function 和一个方法)来实现您要求的行为:
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'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.