class Student: def __init__(self,name,age): self.name = name self.age = age # __str__ 字符串方法 def __str__(self): return f"Student类对象,name:{self.name}, age:{self.age}" # __lt__ 小于、大于符号比较 def __lt__(self, other): return self.age < other.age stu1 = Student("周杰伦", 31) stu2 = Student("哇哈哈", 28) print(stu1 < stu2) print(stu1 > stu2)
时间: 2024-04-16 22:24:18 浏览: 141
python面向对象进阶之路
您的代码存在一些问题。在定义`__str__`和`__lt__`方法时,缩进错误,这会导致这两个方法不属于`Student`类。正确的代码应该是这样的:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Student类对象,name: {self.name}, age: {self.age}"
def __lt__(self, other):
return self.age < other.age
stu1 = Student("周杰伦", 31)
stu2 = Student("哇哈哈", 28)
print(stu1 < stu2)
print(stu1 > stu2)
```
在上述代码中,我们定义了一个`Student`类,并在`__init__`方法中初始化了`name`和`age`属性。然后,我们定义了`__str__`方法,用于自定义打印对象时的输出内容,返回一个表示学生对象的字符串。同时,我们还定义了`__lt__`方法,用于实现小于符号的比较操作,根据学生的年龄进行比较。
最后,我们创建了两个`Student`对象,分别为`stu1`和`stu2`,并通过比较运算符进行比较操作,并打印结果。根据年龄的大小关系,会输出相应的布尔值。
阅读全文