2013-05-02 67 views
3

我想調用類成員函數初始化類成員init。 items_left和rat_initialize是我用來正確初始化類實例的所有成員的成員函數。這樣做是否正確?從python中的__init__調用另一個成員函數

class Maze: 
    """ A 2D maze. """ 
    # Write your Maze methods here. 
    def __init__(self,maze,rat_1,rat_2): 
     self.maze = maze 
     self.rat_1 = rat_1 
     self.rat_2 = rat_2 
     self.num_sprouts_left = 0 
     self.items_left(maze) 
     self.rat_initialize(maze,rat_1,rat_2) 
+1

python的一個優點是你可以輕鬆地嘗試和運行代碼。你應該運行它,看看它是否工作。另外,由於迷宮,rat_1和rat_2被指定爲實例變量,因此不必將它們傳遞給self.rat_initialize()。 – monkut 2013-05-02 04:42:41

+1

@monkut:當然,它有可能出現未定義的行爲,但它顯得很不正常。幸運的是,Python並沒有很多這樣的情況,但是如果不知道它,你不能安全地假設它。 – icktoofay 2013-05-02 04:51:16

回答

8

是的,你可以做到這一點。當調用__init__時,此對象已經實例化,所有方法都可用。

實際物體瞬發發生在__new____init__之後才被調用。您可以訪問__init__以內的其他功能。

相關問題