gpt4 book ai didi

python - 在 Python 中将两个方法重写为一个方法

转载 作者:行者123 更新时间:2023-12-01 06:00:51 26 4
gpt4 key购买 nike

假设我有以下两种方法:

 def function(self, my_object):
self.things.add(my_object)

def function_args(self, arg1, arg2, arg3 = None):
my_object = MyObject(arg1, arg2, arg3)
self.things.add(my_object)

我想将其编写为可以使用位置参数调用的单个函数:

 something.function(an_object)
something.function(arg1, arg2, arg3)

如果我愿意始终使用关键字参数调用结果函数,我可以看到如何执行此操作,如果我愿意更改第二个函数的签名以接受列表,我可以看到如何执行此操作或三个参数的元组,这样每个版本都有单个参数,我可以按类型区分(这在 Python 中似乎不太正确)。

我可以干净地编写一个函数,允许我使用任意一组位置参数来调用它吗?

最佳答案

为什么不将 arg2 设置为可选并在调用函数时检查它?

 def function_args(self, arg1, arg2 = None, arg3 = None):
if arg2 != None:
my_object = MyObject(arg1, arg2, arg3)
self.things.add(my_object)
else:
self.things.add(arg1)

关于python - 在 Python 中将两个方法重写为一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10555437/

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