![](/img/trans.png)
[英]python super :TypeError: __init__() takes 2 positional arguments but 3 were given
[英]TypeError: __init__() takes 0 positional arguments but 1 was given
我刚刚开始在我的学校编写代码,我正在学习如何使用Python。 我们老师给了我们这个任务:
这是我的代码:
class CustomerInfo:
def __init__ ():
self.name = theName
self.order = theOrder
self.quantity = theQuantity
self.address = theAddress
def setName( self, newName ):
self.Name = newName
def setOrder ( self, newModel ):
self.model = newModel
def setQuantity ( self, newQuantity ):
self.quantity = newQuantity
def setAddress (self, newAddress ):
self.address = newAddress
def getName ( self ):
return self.name
def getOrder ( self ):
return self.order
def getQuantity ( self ):
return self.quantity
def getAddress ( self ):
return self.address
name = input("Enter your name: ")
order = input("Enter your order: ")
quantity = int(input("Enter your quanity: "))
address = input("Enter your address: "))
customer1 = CustomerInfo()
print ( "Name: ", customer1.name)
print ( "Order: ", customer1.order)
print ( "Quanity: ", customer1.quantity)
print ( "Address: ", customer1.address)
但是,我得到以下错误:
TypeError: __init__() takes 0 positional arguments but 1 was given
我按照评论中的描述添加了(self)
到__init__
,现在当我运行模块时输入工作但是在我输入名称,顺序,数量和地址之后,结果如下:
Traceback (most recent call last):
File line 32, in <module>
customer1 = CustomerInfo()
File line 4, in __init__
self.name = theName
NameError: name 'theName' is not defined
__init__
方法需要在Python中接受self
,因为它是一种方法。
更改:
def __init__ ():
至:
def __init__ (self):
我不想为你提供确切的代码,因为这是家庭作业,如果你自己得到正确的代码,你会学得更好。 我将指出两个要点(在添加self
,已经提到并且已经添加),这应该允许您继续自己编写代码:
theName
的函数内。 那就是寻找一个全局变量,如果有的话,它应该很少使用。 是的,这是您忘记(self,...)
arg到__init__()
或任何其他方法时得到的消息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.