python - 构造函数未能接受输入参数

标签 python linux class error-handling constructor

<分区>

我是 Python 新手。我一直在关注有关 python 类的在线教程,但我遇到了一个奇怪的错误。

我不知道我做了什么。

下面是我的代码:

class StudentData:
  "Contains information of all students"
  studentNumber = 0;
  def _init_(self,name,age,marks):
      self.name = name;
      self.age = age;
      self.marsk = marks;
  def displayStudentNUmber(self):
      print 'Total Number of students = ',studentNumber;
  def displayinfo(self):
      print 'Name of the Student: ',name;
      print 'Age of the Student: '.age;
      print 'Marks of the Student: '.marks;
student1 = StudentData('Ayesha',12,90)
student2 = StudentData('Sarah',13,89)
print "Student number in case of student 1",student1.displayStudentNumber();
print "Information of the Student",student1.dispalyinfo();
print "Student number in case of student 1",student2.displayStudentNumber();
print "Information of the Student",student2.dispalyinfo();

下面是错误:

Traceback (most recent call last): File "main.py", line 14, in student1 = StudentData('Ali',12,90) TypeError: this constructor takes no arguments

任何人都可以解释为什么我会收到此错误。

对不起,一个蹩脚的问题:(

最佳答案

__init__() 的两边应该有两个下划线,因此 python 已将您的下划线视为您类中的一个普通函数。

改变:

def _init_(self,name,age,marks):

def __init__(self,name,age,marks):

关于python - 构造函数未能接受输入参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16621526/

相关文章:

linux - andlinux slirp 网络失败

C++:如何访问另一个类中的类函数?

python - 改变情节中的图例

python - 如何获取数据存储名称/id 列值

linux - 在 bash 中使用区分行符号 # 提取子数组

class - 我想将我自己的方法添加到一些 Dart 类中

java - 如何在另一个方法中使用 boolean 值的返回语句?

python - (list|set|dict) 包含 yield 表达式的理解不返回 (list|set|dict)

python - 使用SQLAlchemy删除级联外键约束错误

c - dup返回错误(linux下c编程)