gpt4 book ai didi

python 中的 C++ 方法重载

转载 作者:行者123 更新时间:2023-11-30 04:37:59 26 4
gpt4 key购买 nike

假设一个C++类有多个构造函数,它们根据各自参数的数量、类型和顺序进行重载,例如constructor(int x, int y)constructor(float x, float y, float z),我觉得这两个是重载方法,用哪个看参数吧?那么在 python 中,我如何创建一个可以像这样工作的构造函数呢?我注意到 python 有 def 方法(self, *args, **kwargs):,所以我可以像这样使用它:def __init__(self, *args),然后我检查*args的长度,比如if len(args) == 2:,然后根据2参数构造函数构造,if len( args) == 3,然后使用 3 参数构造函数等。那么,这行得通吗?或者有没有更好的方法用 python 来做?或者我应该以其他方式考虑可以利用 python 功能本身的优势吗?谢谢~

最佳答案

通常,您可以任意组合

  • 稍作改动的设计
  • 默认参数 (def __init__(self, x = 0.0, y = 0.0, z = 0.0))
  • 使用多态性(在鸭子类型的语言中,如果 SomeThing 和 SomeSlightlyDifferentThing 都没有继承自另一个,则不需要重载 SomeThing 和 SomeSlightlyDifferentThing,只要它们的接口(interface)足够相似即可)。

如果这看起来不可行,请更加努力;)如果它仍然不可行,请查看 David 的链接。

关于python 中的 C++ 方法重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476387/

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