2013-05-02 175 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__以内的其他功能。

相关问题