Python类构造函数错误求助:TypeError: Veicolo() takes no arguments问题排查与修复
解决TypeError: Veicolo() takes no arguments的问题
嘿,我一眼就看出问题啦——你的构造函数命名错了!Python里的构造函数必须是**init**(前后各两个下划线),而你写成了_init_(前后各一个下划线),这就导致Python没法识别这个方法是用来初始化实例的,所以当你尝试给Veicolo()传参数时,它就会报错说这个类不接受参数。
在Python中,所有的特殊方法(比如构造函数、字符串表示方法等)都是以双下划线开头和结尾的,这是语言的规范要求。你写的_init_只是一个普通的类方法,不是构造函数,所以创建实例时Python会使用默认的无参构造函数,自然就不接受你传入的那几个参数了。
修复后的代码如下:
class Veicolo: def __init__(self, marca, modello, colore, prezzo): # 修正为前后双下划线的__init__ self.marca = marca self.modello = modello self.colore = colore self.prezzo = prezzo def scheda(self): x = "In sede ho una {} modello {} di colore {}".format(self.marca, self.modello, self.colore) return x def prezzi(self): x = "Il veicolo di {} modello {} costa {}".format(self.marca, self.modello, self.prezzo) return x v1 = Veicolo("fiat", "punto", "rosso", "500") print(v1.scheda())
小提示:以后写Python类的特殊方法时,记得检查下划线的数量,比如__str__、__repr__这些都是双下划线开头结尾,别再写错啦😉
内容的提问来源于stack exchange,提问作者Federico Troisi
相关产品推荐
相关产品推荐

