Python创建类时错误? 类型错误:类无参数

前言

Python是我第一门接触到的面向对象的语言,很久前学过Pyhton的基础语法,和大多数人一样,学了基础过后了解了很多方向,学过一点基于requests的爬虫,也了解过基于pygame的游戏开发相关知识,也了解过python的numpy科学计算库。到现在也有一段时间了,也差不多都忘了,感觉还是个小白。现在想回来继续python的面向对象学习,不曾想一来就犯了这么低级的错误。。。

从面向过程到面向对象,其实也好理解,感觉类似于在写头文件并实现接口的过程就是创建类,实现的接口函数可以说方法。但是总感觉有点不习惯。。。刚接触面向对象,还得深入学啊TAT

Python创建类实例

代码很简单,就是构造了一个类,然后构造了一些对类中成员的操作方法。老手可能一眼就已经发现我的错误在哪了。。。对照视频学习的时候看着代码也是一样的啊。。我的咋就跑不起来呢。。甚至一度怀疑是我的idle抽风了(其实是我抽了。。。)下面是我错误的代码

class StudentGPA:
	def _init_(self,name,num,allcredits,points):
		self.name = name;
		self.num = num;
		self.credits = float(allcredits);
		self.points = float(points);

	def getName(self):
		return self.name,self.num;

	def getCredits(self):
		return self.credits;

	def getPoint(self):
		return self.points;

	def GPA(self):
		return self.points / self.credits;

def makeStudent(infoStr):
	#infoStr为文件中的一行内容,创建一个学生对象,返回StudentGPA对象
	name,num,allcredits,points = infoStr.split("\t");
	return StudentGPA(name,num,allcredits,points);

#输入读入数据的文本文件名,以读方式打开
filename = input("Enter name the grade file:");
fp = open(filename,"r");

#从文件中读入一行,创建第一个学生对象
best = makeStudent(fp.readline());

 #计算GPA最高,best对象存放GPA最高的学生
for line in fp: 
	s = makeStudent(line);
	if s.GPA() > best.GPA(): 
		best = s;
  
#关闭文件
fp.close();

print("成绩最好的学生是:", best.getName());
print("学分:",best.getCredits()); 
print("GPA:",best.GPA());

Python创建类时发生错误

程序一跑,提示错误,TypeError:StudentGPA() takes no arguments?
我的类没有参数??

Enter name the grade file:students.txt
Traceback (most recent call last):
  File "/Users/liuxin/Desktop/Python/面向对象/StudentGPA.py", line 30, in <module>
    best = makeStudent(fp.readline());
  File "/Users/liuxin/Desktop/Python/面向对象/StudentGPA.py", line 23, in makeStudent
    return StudentGPA(name,num,allcredits,points);
TypeError: StudentGPA() takes no arguments

错误类型CSDN一下

终于发现错误了。。就是下面这一行:

def _init_(self,name,num,allcredits,points):

左右少下划线。。。
正确代码:

def __init__(self,name,num,allcredits,points):

然后就可以正确运行了!

Enter name the grade file:students.txt
成绩最好的学生是: ('Llllx', '5601117150')
学分: 101.0
GPA: 0.04455445544554455
  • 15
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值