Python类参数,定义

时间:2017-02-04 13:47:45

标签: python python-2.7 class

class Camera(object):

    def __init__(self, win, x=0.0, y=0.0, rot=0.0, zoom=1.0):
        self.win = win
        self.x = x
        self.y = y
        self.rot = rot
        self.zoom = zoom
cam = Camera(Window,1,1,1,1)

VS

class Camera(object):

    def __init__(self, win, x, y, rot, zoom):
        self.win = win
        self.x = x
        self.y = y
        self.rot = rot
        self.zoom = zoom
cam = Camera(Window,1,1,1,1)

第一个代码块是否只是使类静态只能在哪里进行而不是用参数调整?如果是这样,那么它的用处是什么?

2 个答案:

答案 0 :(得分:1)

第一个和第二个之间的区别是:第一个具有默认值而另一个没有。例如,第一个 cam = Camera(Window)不会给您一个错误(x=0.0y=0.0rot=0.0zoom=1.0都有默认的指定值。

但是如果您要创建类cam = Camera(Windows)的类的新实例,则第二个代码块会给您一个错误。这最终是你的第一个代码块和第二个代码块之间的区别。

干杯!

答案 1 :(得分:1)

第一个代码块只为这些变量设置默认值。当类被初始化时,如果它们被传递给类,那么它们将被设置。否则,类变量将包含默认值。

在第二个代码块中,通过不设置默认值,您将为该类生成所需的参数。

请参阅此问题以获得更好的解释:Why do we use __init__ in python classes?