在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()
答案 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