python基础练习之面向对象

时间:2024-10-10 18:48:32

目录

  • 面向对象练习
    • 1. 创建一个类people
    • 2. 类的继承
    • 3. 创建一个mylist类,继承自内置数据
    • 4. 学生成绩排序(类与对象练习)
    • 5. 两数求和问题
    • 6. "精致"的数
    • 7. 最大的周长

面向对象练习

1. 创建一个类people

包含属性name,city
可以转换为字符串形式(str)
包含方法moveto(self,newcity)
可以按照city排序
创建4个人对象,放到列表进行排序

class People:
    def __init__(self,name,city):  # self表示实例,因为还没输入暂代
        self.name = name
        self.city = city
    def __str__(self):
        s = "%s 来自 %s" % (self.name, self.city)
        return s
    __repr__ = __str__  # 因为如果一个对象没有 str 函数,而 Python 又需要调用它的时候,解释器会用 repr 作为替代,在这里,str输出的会更明了
    def moveto (self, newcity):
        self.city = newcity
    def __lt__(self, other):
        return self.city < other.city
        
a = People('赵子龙','changshan')
b = People('张飞','zhuozhou')
c = People('孙悟空','huaguoshan')
d = People('猪八戒','gaolaozhuang')
print(a,b)
a.moveto('bashu')
print(a)
l = [a,b,c,d]
print(sorted(l))   # sort的两种写法
l.sort(reverse = True)
print(l)

2. 类的继承

创建一个类Teacher,是People的子类,
新增属性school
moveto方法改为newschool,按照school排序。
创建4个教师对象,放到列表进行排序。

class Teacher(<