Python TypeError:\uuuu init\uuuu()接受0个位置参数,但给出了1个
我最近刚在学校开始编写代码,我正在学习如何使用Python。 我们的老师给了我们这个任务:Python TypeError:\uuuu init\uuuu()接受0个位置参数,但给出了1个,python,class,methods,typeerror,init,Python,Class,Methods,Typeerror,Init,我最近刚在学校开始编写代码,我正在学习如何使用Python。 我们的老师给了我们这个任务: 创建一个类并将其命名为“CustomerInfo” 创建一个没有参数的构造函数(只有self) 为名称、订单、数量和地址创建用户输入 为名称、订单、数量和地址创建mutator方法 为名称、订单、数量和地址创建访问器方法 创建一个新的CustomerInfo()对象并将其称为“customer1” 打印出客户信息 这是我的密码: class CustomerInfo: def __init__
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)
添加到\uuuu init\uuuu
中,如注释中所述,现在当我运行模块时,输入工作正常,但在输入名称、订单、数量和地址后,结果如下所示:
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
回溯(最近一次呼叫最后一次):
文件第32行,在
customer1=CustomerInfo()
文件第4行,在_init中__
self.name=名称
名称错误:未定义名称“theName”
Python中的\uuuuu init\uuuu
方法需要接受self
,因为它是一种方法
更改:
def __init__ ():
致:
是的,这是当您忘记
(self,…)
arg to\uuu init\uuu()
或任何其他方法时得到的消息。我不想为您提供确切的代码,因为这是家庭作业,如果您自己找到正确的代码,您将学习得更好。我将指出两个要点(在添加self
之后,您已经提到并添加了这两个要点),这两个要点应该允许您自己继续编写代码:
是的,这是当您忘记
(self,…)
arg到\uuuu init\uuu()
或任何其他方法时得到的消息。如果直觉上您认为\uuuu init\uuuuu
不应该接受任何参数,那么请注意\uuu init\uuu
不会创建类的新实例。但是您可能不需要定义自己的\uuuuu new\uuuuu
。如果您没有使用Python 3(这个问题还不清楚),那么您的类应该继承自对象,即类CustomerInfo(object):
@sapi这真的是他最不担心的。@sapi:。
def __init__ (self):