作业Day16_类和对象(2)

2019-01-14  本文已影响0人  RiskHY

0.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]

方法:

a. 获取学生的姓名:getname()

b. 获取学生的年龄:getage()

c. 返回3门科目中最高的分数。get_course()

class Student:
    def __init__(self, name, age, ch_score, math_score, en_score):
        self.name = name
        self.age = age
        self.ch_score = ch_score
        self.math_score = math_score
        self.en_score = en_score

    def get_name(self):
        print(self.name)

    def get_age(self):
        print(self.age)

    def get_course(self):
        max_score = max(self.ch_score, self.math_score, self.en_score)
        print(max_score)



def main():
    stu = Student('stu1', '男', 78, 89, 90)
    stu.get_name()
    stu.get_age()
    stu.get_course()


if __name__ == '__main__':
    main()

1.建立一个汽车类Auto,包括轮胎个数,汽车颜色,车身重量,速度等成员变量,并通过不同的构造方法创建实例。至少要求 汽车能够加速 减速 停车。

再定义一个小汽车类CarAuto 继承Auto 并添加空调、CD等成员变量 覆盖加速 减速的方 法

class Auto:
    def __init__(self, tire_num, color, weight, vel):
        self.tire_num = tire_num
        self.color = color
        self.weight = weight
        self.vel = vel

    def speed(self):
        print('一辆重{}顿有{}轮子{}的汽车,正在加速'.format(self.weight, self.tire_num, self.color))

    def slow_down(self):
        print('一辆重{}顿有{}轮子{}的汽车,正在减速'.format(self.weight, self.tire_num, self.color))

    def stop(self):
        print('一辆重{}顿有{}轮子{}的汽车,正在停车'.format(self.weight, self.tire_num, self.color))


class CarAuto(Auto):
    def __init__(self, tire_num, color, weight, vel, air='美的空调', cd='cd'):
        super().__init__(tire_num, color, weight, vel)
        self.air = air
        self.cd = cd

    def speed(self):
        print('一辆重{}顿有{}轮子{}的有{}和{}汽车,正在加速'.format(self.weight, self.tire_num, self.color, self.air, self.cd))

    def slow_down(self):
        print('一辆重{}顿有{}轮子{}的有{}和{}汽车,正在减速'.format(self.weight, self.tire_num, self.color, self.air, self.cd))


def main():
    auto = Auto(10, '蓝色', 15, 80)

    auto.speed()
    auto.slow_down()
    auto.stop()

    carauto = CarAuto(4, '橙色', 5, 120)
    carauto.speed()
    carauto.slow_down()
    carauto.stop()


if __name__ == '__main__':
    main()  

2.创建一个名为User 的类,其中包含属性firstname 和lastname ,还有用户简介通常会存储的其他几个属性。在类User 中定义一个名 为describeuser() 的方法,它打印用户信息摘要;再定义一个名为greetuser() 的方法,它向用户发出个性化的问候。
管理员是一种特殊的用户。编写一个名为Admin 的类,让它继承User类。添加一个名为privileges 的属性,用于存储一个由字符串(如"can add post"、"can delete post"、"can ban user"等)组成的列表。编写一个名为show_privileges()的方法,它显示管理员的权限。创建一个Admin 实例,并调用这个方法。

class User:
    def __init__(self, first_name, sex, age, last_name):
        self.first_name = first_name
        self.last_name = last_name
        self.sex = sex
        self.age = age

    def describeuser(self):
        print()

    def greetuser(self):
        print('Hello,{}'.format(self.last_name))


class Admin(User):
    def __init__(self, *privileges,first_name, sex, age, last_name):
        super().__init__(first_name, sex, age, last_name)
        self.pri = list(privileges)

    def show_privileges(self):
        print('{}权限是{}'.format(self.last_name+self.first_name,self.pri))


def main():
    user = User('hy', '男', 24, 'l')
    admin = Admin("can add post", "can delete post", "can ban user", first_name=user.first_name, sex=user.sex, age=user.age, last_name=user.last_name)
    admin.show_privileges()


if __name__ == '__main__':
    main()  

3.创建一个Person类,添加一个类字段用来统计Perosn类的对象的个数

import sys


class Person:
    def __init__(self):
        pass


def main():
    num1 = sys.getrefcount(Person)
    p1 = Person()
    p2 = Person()
    num2 =sys.getrefcount(Person)
    print('对象个数:{}'.format(num2-num1))


if __name__ == '__main__':
    main()  
上一篇下一篇

猜你喜欢

热点阅读