这个Constructer没有参数

时间:2016-03-18 01:55:18

标签: python

在Python中,我第一次尝试了类。当我使用这段代码时,我得到错误'这个构造不带参数'在第15行。有人可以告诉我这是什么问题吗?

class Triangle:
    def _init_(self,h,b):
        self.h = h
        self.b = b
    author = 'No one has claimed this rectangle yet'
    description = 'None'
    def area(self):
        return (self.h * self.b)/2
    def description(self,text):
        self.description = text
    def author(self,text):
        self.author = text

fred = Triangle(4,5)
print fred.area()

4 个答案:

答案 0 :(得分:2)

您应该使用双下划线__来表示__init__

def __init__(self, h, b):

答案 1 :(得分:2)

您将构造函数定义为_init_时应将其定义为__init__(请注意双下划线)。 Python没有看到你的__init__(因为它被错误命名),并且只是假设一个默认构造函数(不带参数)。

答案 2 :(得分:0)

您的错误在init函数中。它应该像__init__()之前和之后一样有两个下划线。

这是正确的代码:

class Triangle:
    def __init__(self,h,b):
        self.h = h
        self.b = b
    author = 'No one has claimed this rectangle yet'
    description = 'None'
    def area(self):
        return (self.h * self.b)/2
    def description(self,text):
        self.description = text
    def author(self,text):
        self.author = text

fred = Triangle(4,5)
print fred.area()

答案 3 :(得分:0)

我认为问题仅在于您的类构造函数的语法, init 需要两个下划线之前和之后。

所以你上课了

class Triangle:
    def __init__(self,h,b):
        self.h = h
        self.b = b

    # rest of the class code

此链接提供了有关python中下划线相关性的一些信息: https://shahriar.svbtle.com/underscores-in-python