是否可以在不使用*args或默认值的情况下创建具有可变数量参数的类或函数?(就像在范围函数中一样)

问题描述 投票:0回答:1

我想创建具有最小值和最大值的类,默认最小值设置为 0。 我希望它能够仅设置最大值或同时设置最大值和最小值,首先设置最小值,然后设置最大值。基本上我希望它像范围函数一样接收参数。 我不想使用 *args,因为我希望在使用 help() 时以及在我的编程环境中将光标悬停在类名上时显示参数。 我知道我可以使最小值和最大值都有默认值,但我真的想知道是否可以使其像范围一样工作。

是否可以复制 range 中的参数如何工作,还是仅仅因为 range 不是用 python 编写的?

我尝试复制范围内的变量如何工作,但文档没有提及有关这两组变量的任何内容,而且我没有足够的经验来找到我在源代码中寻找的内容。 尽管我知道 python 会用新的类或函数覆盖类或函数的声明(如果两者具有相同的名称),但我尝试编写两个 init 方法,但这显然不起作用。我还对两个具有相同名称和两个函数的类进行了相同的尝试,在这两种情况下我都得到了相同的结果。

python class arguments
1个回答
0
投票

您可以在函数的定义中指定默认值

def func(maximum,minimum = 0):
    print(minimum,maximum)

# prints 10,1
func(10,1)

#prints 10,0
func(10)
© www.soinside.com 2019 - 2024. All rights reserved.