Python类 - 如何创建接受未定义数量的参数的类?

时间:2014-11-25 01:08:58

标签: python class variables arguments init

我是初学者。为了学习,我必须在python中编写一个类,它最多接受3个不同的参数(a,b,c):类似

 class random(object):

     def __init__(self,a,b,c):
          blah blah blah

我如何做到:

  • 如果没有输入参数,它会做一件事。

    例如:

    “test = random()”,在这种情况下假设a = b = c = 0

  • 如果输入一个参数,它会做另一件事。

    例如:

    "test=random(2)", in this case a=2 ,b=c=0, 
     and then run some case specific codes/instrutctions
    

类似于内置函数/类“范围”的内容,您可以使用

范围(9) 范围(3,9) 范围(3,9,2)

如果你知道我的意思。

感谢

1 个答案:

答案 0 :(得分:4)

您似乎在询问Default Argument Values

定义函数或方法时,使参数可选的一种方法是给它们默认值:

 def __init__(self, a=0, b=0, c=0):

现在,如果我调用你的函数(或者,在__init__函数的情况下,构造一个没有参数的实例),ab和{ {1}}将全部为0.如果我传递1个参数,cb将为0.依此类推。

请参阅Arbitrary Argument Lists了解其他类似方法。


c的工作方式有点时髦,因为如果只有1个参数而不是2个或更多,则第一个参数具有不同的含义。还有一些像这样的其他内置组件,但你仿效它们并不是一个好主意;这些基本上只是出于向后兼容的原因(到Python没有关键字的日子)。

为了让事情变得更有趣,因为range0start的完全有效值,甚至stop也是如此,您必须构建一些特殊值没人能合理地通过你。 (那部分,你可能实际上需要模仿某一天。)所以,它看起来像这样:

None