我想知道哪里滞后,寻找你的意见..
class Student_Record(object):
def __init__(self,s):
self.s="class_Library"
print"Welcome!! take the benifit of the library"
def Student_details(self):
print " Please enter your details below"
a=raw_input("Enter your name :\n")
print ("your name is :" +a)
b=raw_input("Enter your USN :\n")
print ("Your USN is:" ,int(b))
c=raw_input("Enter your branch :\n")
print ("your entered baranch is" +c)
d=raw_input("Enter your current semester :\n")
print ("your in the semester",int(d))
rec=Student_Record()
rec.Student_details(self)
我收到此错误..
TypeError: init ()只需要2个参数(给定1个)
答案 0 :(得分:4)
您的Student_Record.__init__()
方法有两个参数,self
和s
。 Python为您提供了self
,但您未能提供s
。
您完全忽略s
,将其从函数签名中删除:
class Student_Record(object):
def __init__(self):
self.s = "class_Library"
print"Welcome!! take the benifit of the library"
接下来,您正在调用传递参数的方法rec.Student_details()
,但 方法只需要self
,这是Python已经为您提供的。您不需要手动传递它,在您的情况下,甚至没有在该范围中定义名称。
答案 1 :(得分:0)
如果你这样做
class Student_Record(object):
def __init__(self, s):
self.s = ""
def Student_details(self):
print " Please enter your details below"
当你创建类Student_Record
的对象时,它应该接受一个参数,尽管它本身(self
)。所以它看起来像:
record = Student_Record("text")
并且在__init__
中,您可以对传入的变量s
执行任何操作。例如,self.s = s
,您可以使用self.s
在课程的任何位置调用它,因为它已初始化。
答案 2 :(得分:0)
你的代码应该是这样的..(python indent):
class Student_Record(object):
def __init__(self,s="class_Library"):
self.s=s
print"Welcome!! take the benifit of the library"
def Student_details(self):
print " Please enter your details below"
a=raw_input("Enter your name :\n")
print ("your name is :" +a)
b=raw_input("Enter your USN :\n")
print ("Your USN is:" ,int(b))
c=raw_input("Enter your branch :\n")
print ("your entered baranch is" +c)
d=raw_input("Enter your current semester :\n")
print ("your in the semester",int(d))
rec=Student_Record()
rec.Student_details()
s
中的{p> def __init__
应该有默认值,或者您可以传递rec=Student_Record()
的值。