【发布时间】:2020-01-14 21:55:42
【问题描述】:
我是 python 的初学者,但我无法理解类。我有一项任务需要我创建一个应该返回学生信息的类,例如姓名、身份证、年龄和标记。我做了一个类,但输出有问题,并不断收到属性错误:
print("Student: " + self.name + " ID: " + self.ID + " Age: " + self.age + " Mark: " + self.mark)
AttributeError: 'Student' object has no attribute 'age'
我想知道是否有人可以解释我在这里做错了什么,因为我很迷茫。
其余代码:
import random
class Student:
def __init__(self, name, ID):
self.name = name
self.ID = ID
def setAge(self, age):
self.age = age
self.age = random.randint(0, 100)
def setMarks(self, marks):
self.marks = marks
self.marks = random.randint(0, 100)
def Display(self):
print("Student: " + self.name + " ID: " + self.ID + " Age: " + self.age + " Mark: " + self.mark)
student = Student("John", "ID123")
student.Display()
【问题讨论】:
-
您在显示信息之前没有设置年龄或标记...
-
是的,因为您从未为学生设置年龄。
-
谢谢你,我刚刚也看到了这个问题,谢谢你的及时回复!
-
在
setAge()中,self.age = age有什么意义,因为无论如何你都会立即将self.age重新分配给一个随机数? -
将
self.age = None和self.mark = None添加到__init__函数中。
标签: python python-3.x class methods