我在StackOverflow上发现了许多问题,这些问题几乎可以解决我的问题,但没有一个做到这一点。我在Python中有一个类,我想拆分其方法,以便可以按以下方式使用该类:
my_greeter = Greeter(name='Bob')
my_greeter.sayHello()
#> "Hello Bob"
my_greeter.international.sayHola()
#> "Hola Bob"
我不太确定如何构造我的文件及其内容来实现这一目标。有人可以举个例子吗?
注意:这种行为的例子pandas.Series.str.contains()
很普遍,尽管源代码过于密集,以至于我无法区分他们是如何做到的。
这是Fluent API设计的一个示例,它在其核心中使用方法链接。在Python中,此实现的思想是在完成应做的事情后从每个方法返回实例。
这是一个幼稚的例子:
In [1]: class Fluent:
...: def __init__(self, num):
...: self.num = num
...: def add_two(self):
...: self.num += 2
...: return self # this allows us for chaining
...: def result(self):
...: return self.num
...:
In [2]: f = Fluent(10)
In [3]: f.add_two().result()
Out[3]: 12
您可以制作add_two
一个property
避免方法调用的方法,并将其称为属性:
f.add_two.result()
编辑:示例property
:
In [4]: class Fluent:
...: def __init__(self, num):
...: self.num = num
...: @property
...: def add_two(self):
...: self.num += 2
...: return self # this allows us for chaining
...: def result(self):
...: return self.num
...:
In [5]: f = Fluent(10)
In [6]: f.add_two.result()
Out[6]: 12
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句