在Python中使用点表示法对类方法进行分组

蒂姆·哈格里夫斯(Tim Hargreaves)

我在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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Racket类函数中使用点表示法

来自分类Dev

在Racket类函数中使用点表示法

来自分类Dev

在 C# 中使用点表示法进行插值

来自分类Dev

使用Python中的类对函数进行分组

来自分类Dev

在 python 中使用周围的类对方法进行类型注释

来自分类Dev

使用点表示法从嵌套的python字典中检索值

来自分类Dev

使用Python以点表示法打印唯一的JSON密钥

来自分类Dev

当我有效使用非点表示法时,解决jshint“更好地以点表示法编写”的方法

来自分类Dev

如何对 Python 对象的许多方法进行分组或聚类

来自分类Dev

在Python pandas DataFrame中使用关闭DateTimes对记录进行分组

来自分类Dev

在JavaScript中使用“ in”运算符和点表示法的区别

来自分类Dev

在状态名称中使用点表示法时,Angular + UI Router中断

来自分类Dev

在 React 中使用点表示法访问属性会引发错误

来自分类Dev

mongoimport + 点表示法,使用 CSV 进行子记录合并更新

来自分类Dev

在python程序中使用类和递增点

来自分类Dev

Python附加函数作为点表示法

来自分类Dev

使用点表示法访问CLOS插槽

来自分类Dev

使用点表示法获取innerHTML或textContent

来自分类Dev

无法在Python中使用两个参数对应用程序进行分组分组

来自分类Dev

无法在Haskell中进行编译的无点表示法

来自分类Dev

无法在Haskell中进行编译的无点表示法

来自分类Dev

基类 Python 中使用的覆盖方法

来自分类Dev

在ruby类中使用方法进行迭代

来自分类Dev

使用Java中的接口对类进行分组

来自分类Dev

Matlab点表示法

来自分类Dev

VBA点表示法

来自分类Dev

当key是迭代器时,使用点表示法在Python中创建字典条目

来自分类Dev

当key是迭代器时,使用点表示法在Python中创建字典条目

来自分类Dev

在条件求和中使用数组进行分组

Related 相关文章

  1. 1

    在Racket类函数中使用点表示法

  2. 2

    在Racket类函数中使用点表示法

  3. 3

    在 C# 中使用点表示法进行插值

  4. 4

    使用Python中的类对函数进行分组

  5. 5

    在 python 中使用周围的类对方法进行类型注释

  6. 6

    使用点表示法从嵌套的python字典中检索值

  7. 7

    使用Python以点表示法打印唯一的JSON密钥

  8. 8

    当我有效使用非点表示法时,解决jshint“更好地以点表示法编写”的方法

  9. 9

    如何对 Python 对象的许多方法进行分组或聚类

  10. 10

    在Python pandas DataFrame中使用关闭DateTimes对记录进行分组

  11. 11

    在JavaScript中使用“ in”运算符和点表示法的区别

  12. 12

    在状态名称中使用点表示法时,Angular + UI Router中断

  13. 13

    在 React 中使用点表示法访问属性会引发错误

  14. 14

    mongoimport + 点表示法,使用 CSV 进行子记录合并更新

  15. 15

    在python程序中使用类和递增点

  16. 16

    Python附加函数作为点表示法

  17. 17

    使用点表示法访问CLOS插槽

  18. 18

    使用点表示法获取innerHTML或textContent

  19. 19

    无法在Python中使用两个参数对应用程序进行分组分组

  20. 20

    无法在Haskell中进行编译的无点表示法

  21. 21

    无法在Haskell中进行编译的无点表示法

  22. 22

    基类 Python 中使用的覆盖方法

  23. 23

    在ruby类中使用方法进行迭代

  24. 24

    使用Java中的接口对类进行分组

  25. 25

    Matlab点表示法

  26. 26

    VBA点表示法

  27. 27

    当key是迭代器时,使用点表示法在Python中创建字典条目

  28. 28

    当key是迭代器时,使用点表示法在Python中创建字典条目

  29. 29

    在条件求和中使用数组进行分组

热门标签

归档