Python 当我保持构造函数名和类名相同时,解释器抛出运行时错误?

Python 当我保持构造函数名和类名相同时,解释器抛出运行时错误?,python,Python,当我将构造函数名保持为init时,一切都很好。我不明白为什么当构造函数名与类名相同时会出现类型错误?在Python中,与C++/Java不同,构造函数不是以类命名的,应该使用init来实现构造函数功能。阅读更多关于它的信息 更具体地说: C++程序员可能会觉得奇怪,Python类没有显式的构造函数和析构函数。Python类确实有一些类似于构造函数的东西:init方法 正如@Ishay所提到的,python没有命名构造函数 下面这些应该可以解决你的问题 class animal(): nam

当我将构造函数名保持为init时,一切都很好。我不明白为什么当构造函数名与类名相同时会出现类型错误?

在Python中,与C++/Java不同,构造函数不是以类命名的,应该使用init来实现构造函数功能。阅读更多关于它的信息

更具体地说:

C++程序员可能会觉得奇怪,Python类没有显式的构造函数和析构函数。Python类确实有一些类似于构造函数的东西:init方法


正如@Ishay所提到的,python没有命名构造函数

下面这些应该可以解决你的问题

class animal():
   name = 'Tiger'
   def animal(self,name):
       self.name = name
   def show(self):
       print(self.name)

/*ins = animal()
ins.show()
# OUTPUT = Tiger
ins = animal('Lion')
Type Error: this constructor takes no arguments
*/

如果没有名为
\uuu init\uu
的函数,则没有初始化函数。您对Python的工作方式有很多误解。我推荐一些介绍性的东西来帮助你找到更好的基础。1) 没有传统的编译器。Python被解释。2)
TypeError
是运行时,而不是解析时间。3) 如果没有定义
\uuuu init\uuu
方法,则没有定义初始值设定项。这一点可以通过在错误发生之前获得一些输出来证明。最后,如果要内联程序的输出,请将其作为注释,这样就不会导致语法错误。
class animal():
   def __init__(self, name = 'Tiger'):
       self.name = name
   def show(self):
       print(self.name)

ins = animal() #Class instance without animal name
ins.show()    
Tiger

ins = animal('Lion') #Class instance with animal name
ins.show()
Lion