2009-10-20 98 views
4

我需要帮助编写Python构造函数方法的代码。Python中的构造函数

此构造方法将采取以下三个参数:

x, y, angle 

什么是这方面的一个例子吗?

+2

这是功课?如果是这样,请用[家庭作业]标记。 – 2009-10-20 10:33:44

+0

//,你愿意改善这个问题吗,@ hugh? – 2015-09-02 22:55:44

回答

14
class MyClass(object): 
    def __init__(self, x, y, angle): 
    self.x = x 
    self.y = y 
    self.angle = angle 

构造函数总是写成一个函数调用__init__()。它必须始终以第一个参数作为正在构建的实例的参考。这通常被称为self。其余的观点取决于程序员。

第一行的object是超类,即这表示MyClassobject的子类。这对于Python类定义来说是正常的。

您可以使用self.语法访问实例的字段(成员)。

+0

谢谢,如果可能的话可以有人解释,所以我可以理解它并学习它 – hugh 2009-10-20 09:31:58

+1

技术上\ _ \ _ init \ _ \ _不是构造函数,\ _ \ _ new \ _ \ _ is;请参阅http://stackoverflow.com/questions/6130644/what-is-the-difference-between-a-constructer-and-initializer-in-python当调用\ _ \ _ init \ _ \ _时,该对象已存在,初始化其领域。 – 2013-12-10 18:01:46

-3
 
class MyClass(SuperClass): 
    def __init__(self, *args, **kwargs): 
     super(MyClass, self).__init__(*args, **kwargs) 
     # do initialization 
+0

这不是他问的。 – 2009-10-20 09:34:16

+3

通常构造函数可能有额外的参数,不应传递给父级构造函数 – 2009-10-20 09:37:10

+0

//,@giolekva你愿意改进这个吗? – 2015-09-02 23:49:27

3

构造函数声明与__init__(self, other parameters),所以在这种情况下:

def __init__(self, x, y, angle): 
    self.x = x 
    self.y = y 
    self.angle = angle 

你可以阅读更多关于此这里:Class definition in python