2017-02-04 95 views
-1
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) 

VSPython类的参数,在哪里定义

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) 

因此,没有第一个代码块只是使类的静态它只能做成,不与参数调整?如果是这样,这有什么用处?

+0

https://docs.python.org/2.0/ref/function.html – RomanPerekhrest

回答

1

的第一个和第二个之间的区别是:在第一个具有默认值,而另一个这么想的。例如与第一个 cam = Camera(Window)不会给你一个错误(x=0.0y=0.0rot=0.0zoom=1.0有一个默认的分配值)。

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

干杯!

+0

嘿感谢了很多!对此,我真的非常感激。 –

1

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

在代码的第二块,通过不设置默认值你正在为类所需的那些参数。

看到这个问题的一个更好的解释:Why do we use __init__ in python classes?

+0

非常感谢你,我非常感谢你的帮助! –