在Python中“过载”功能的最佳方法?

ye

我正在尝试在python中执行以下操作:

def foo(x, y):
    # do something at position (x, y)

def foo(pos):
    foo(pos.x, pos.y)

因此,我想根据提供的参数数量调用不同版本的foo。这当然是行不通的,因为我重新定义了foo

实现这一目标的最优雅的方法是什么?我宁愿不使用命名参数。

史蒂夫·杰索普

通常,您要么定义两个不同的函数,要么执行类似的操作:

def foo(x, y = None):
    if y is None:
        x, y = x.x, x.y
    # do something at position (x, y)

如果您习惯于具有重载的语言,那么定义两个不同函数的选项似乎很麻烦,但是如果您习惯于诸如Python或C之类的没有重载的语言,那么这就是您所要做的。上面的代码在Python中的主要问题在于,记录第一个参数有点尴尬,在两种情况下并不相同。

另一个选择是定义foo带有pos的版本,还为用户提供类型:

Pos = collections.namedtuple('Pos', 'x y')

这样,任何会写的人都foo(x,y)可以写foo(Pos(x,y))当然,由于必须创建对象,因此性能成本会有所降低。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Python中执行不同功能组合的最佳方法

来自分类Dev

将功能应用于python中的元素或元素列表的最佳方法

来自分类Dev

在Python中对该功能进行单元测试的最佳方法是什么?

来自分类Dev

在具有多个功能的Python类中组织用户输入的最佳方法

来自分类Dev

避免功能过载爆炸

来自分类Dev

将此jQuery功能封装到angular指令中的最佳方法?

来自分类Dev

确定组件是否是React中功能组件实例的最佳方法

来自分类Dev

在计划的云功能中删除大量文档的最佳方法

来自分类Dev

在计划的云功能中删除大量文档的最佳方法

来自分类Dev

在计划的云功能中删除大量文档的最佳方法

来自分类Dev

在计划的云功能中删除大量文档的最佳方法

来自分类Dev

在JavaScript中实现模块模式功能的最佳方法?

来自分类Dev

在快速路线中处理多个功能/场景的最佳方法?

来自分类Dev

python中列表操作的简单最佳方法

来自分类Dev

在python熊猫中实现Apriori的最佳方法

来自分类Dev

Python从字典中获取值的最佳方法?

来自分类Dev

在Python中验证名称的最佳方法

来自分类Dev

在python中编写“ try elsetry”的最佳方法?

来自分类Dev

在python中创建饱和整数的最佳方法?

来自分类Dev

在类中存储变量的最佳Python方法

来自分类Dev

处理函数中的Python错误的最佳方法

来自分类Dev

在Python中覆盖Azure Blob的最佳方法

来自分类Dev

在python中编写“ try elsetry”的最佳方法?

来自分类Dev

在Python中验证名称的最佳方法

来自分类Dev

Python从字典中获取值的最佳方法?

来自分类Dev

从python中的html获取价值的最佳方法?

来自分类Dev

在 pysnopper 中调试 python 的最佳方法

来自分类Dev

优化此功能的最佳方法

来自分类Dev

过载内置(本征?)功能

Related 相关文章

  1. 1

    在Python中执行不同功能组合的最佳方法

  2. 2

    将功能应用于python中的元素或元素列表的最佳方法

  3. 3

    在Python中对该功能进行单元测试的最佳方法是什么?

  4. 4

    在具有多个功能的Python类中组织用户输入的最佳方法

  5. 5

    避免功能过载爆炸

  6. 6

    将此jQuery功能封装到angular指令中的最佳方法?

  7. 7

    确定组件是否是React中功能组件实例的最佳方法

  8. 8

    在计划的云功能中删除大量文档的最佳方法

  9. 9

    在计划的云功能中删除大量文档的最佳方法

  10. 10

    在计划的云功能中删除大量文档的最佳方法

  11. 11

    在计划的云功能中删除大量文档的最佳方法

  12. 12

    在JavaScript中实现模块模式功能的最佳方法?

  13. 13

    在快速路线中处理多个功能/场景的最佳方法?

  14. 14

    python中列表操作的简单最佳方法

  15. 15

    在python熊猫中实现Apriori的最佳方法

  16. 16

    Python从字典中获取值的最佳方法?

  17. 17

    在Python中验证名称的最佳方法

  18. 18

    在python中编写“ try elsetry”的最佳方法?

  19. 19

    在python中创建饱和整数的最佳方法?

  20. 20

    在类中存储变量的最佳Python方法

  21. 21

    处理函数中的Python错误的最佳方法

  22. 22

    在Python中覆盖Azure Blob的最佳方法

  23. 23

    在python中编写“ try elsetry”的最佳方法?

  24. 24

    在Python中验证名称的最佳方法

  25. 25

    Python从字典中获取值的最佳方法?

  26. 26

    从python中的html获取价值的最佳方法?

  27. 27

    在 pysnopper 中调试 python 的最佳方法

  28. 28

    优化此功能的最佳方法

  29. 29

    过载内置(本征?)功能

热门标签

归档