2017-02-04 103 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

非常感謝你,我非常感謝你的幫助! –