美文网首页
14作 类和对象

14作 类和对象

作者: 大黄蜂人工智能 | 来源:发表于2018-10-18 09:34 被阅读0次
  1. 声明一个电脑类
    属性:品牌、颜色、内存大小
    方法:打游戏、写代码、看视频
    a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
    b.通过attr相关方法去获取、修改、添加和删除它的属性
class Computer:
    def __init__(self, brand, color, ram):
        self.brand = brand
        self.color = color
        self.ram = ram

    def play_game(self):
        print('玩儿连连看~')

    def coding(self):
        print('写python代码')

    def watch_video(self):
        print('看片儿')
 p1 = computer('苹果','白色','16g')
方法一:
查找
 print(p1.brand,p1.color,p1.memory)
添加
 p1.money = 10000
 print(p1.money)
删除
 del p1.brand
 print(p1.brand)#AttributeError
修改
 p1.color = '红色'
 print(p1.color)
方法二:
查
 print(getattr(p1,'color'))
增
 setattr(p1,'system','windows')
 print(p1.system)
删
 delattr(p1,'memory')
print(p1.memory) #AttributeError
改
 setattr(p1,'color','蓝色')
print(p1.color)

2.声明一个人的类和狗的类:
狗的属性:名字、颜色、年龄
狗的 法:叫唤
人的属性:名字、 年龄、狗
人的方法:遛狗
a.创建人的对象名字叫小明,让他拥有一条狗 ,然后让小明去遛狗

class Dog:
    def __init__(self, name, color, age):
        self.name = name
        self.color = color
        self.age = age

    def shout(self):
        print('嗷嗷叫~')


class Person:
    def __init__(self, name: str, age: int):
        self.name = name
        self.age = age
        self.dog = None  # 注意:dog属性的类型应该是Dog

    def took_the_dog(self):
        if self.dog:
            print('%s正牵着%s在散步' % (self.name, self.dog.name))
        else:
            print('没有🐶,遛自己!')

    def beat(self):
        if not self.dog:
            print('没有🐶!')
            return
        print('%s在打自己的🐶' % self.name)
        self.dog.shout()


# 创建人的对象
p1 = Person('小明', 18)
# 创建狗的对象
dog = Dog('大黄', '黄色', 3)
# 让人拥有狗
p1.dog = dog
# 让人去遛狗
p1.took_the_dog()
p1.beat()

3.声明一个矩形类:
属性: 长、宽
方法:计算周长和面积
a.创建不同的矩形,并且打印其周长和面积

class Rect:
    def __init__(self, length, width):
        self.length = length
        self.width = width

    def perimeter(self):
        return (self.length + self.width)*2

    def area(self):
        return self.length * self.width


rect1 = Rect(3, 2)
print(rect1.perimeter(), rect1.area())

rect2 = Rect(4, 5)
print(rect2.perimeter(), rect2.area())

4.创建一个学生类:
属性:姓名,年龄,学号,成绩
方法:答到,展示学生信息
创建一个班级类: 属性:学生,班级名
方法:添加学生,删除学生,点名, 获取班级中所有学生的平均值, 获取班级中成绩最好的学生

class Student:
    def __init__(self, name='', age=0, score=0, study_id=''):
        self.name = name
        self.age = age
        self.study_id = study_id
        self.score = score

    def replied(self):
        print('%s,到!' % self.name)

    def show_message(self):
        print(self.__dict__)


import random

class Class:
    # 类字段
    __creat_id = ('python'+str(x).rjust(3, '0') for x in range(1, 101))

    def __init__(self, name):
        self.students = []
        self.name = name

    # 添加学生
    def add_student(self):
        # 输入学生信息
        name = input('姓名:')
        age = int(input('年龄:'))
        id = next(Class.__creat_id)
        score = random.randint(0, 100)
        # 创建学生对象
        stu = Student(name, age, score, id)
        self.students.append(stu)
        print(self.students)
        print('添加成功:')
        stu.show_message()

    # 删除学生
    def del_student(self):
        del_name = input('姓名:')
        count = len(self.students)   # 删除前学生的个数

        for stu in self.students.copy():
            if stu.name == del_name:
                self.students.remove(stu)

        if count == len(self.students):
            print('没有该学生!')

    def call(self):
        for stu in self.students:
            print(stu)
            # 学生答到
            stu.replied()

    def average_score(self):
        scores = 0
        for stu in self.students:
            scores += stu.score

        return scores/len(self.students)

    def most_excellent_student(self):
        return max(self.students, key=lambda stu: stu.score)

class1 = Class('python1807')
class1.call()

class1.add_student()

相关文章

  • 14作 类和对象

    1.声明一个电脑类:属性:品牌、颜色、内存大小方法:打游戏、写代码、看视频 a.创建电脑类的对象,然后通过对象点的...

  • 14作 类和对象

    声明一个电脑类属性:品牌、颜色、内存大小方法:打游戏、写代码、看视频a.创建电脑类的对象,然后通过对象点的方式获取...

  • 15作 类和对象

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

  • 15作 类和对象

    作业1.定义一个学生类。有属性:姓名、年龄、成绩(语文,数学,英语)[每课成绩的类型为整数]方法: a. 获取学生...

  • 14总 类和对象

    1.理论上的定义 类:就是拥有相同功能和相同属性的对象的集合(类是抽象)对象:类的实例(对象是具体的) 2.从生活...

  • 14总 类和对象

    1.复习: 编程思想: 1.面向过程编程 ---> 算法,逻辑(数学逻辑) 2.函数式编程 ---> 函数,模块...

  • 14 类和对象--对象模型和this指针

    成员变量和成员函数分开存储 首先我们尝试打印下无属性方法的类空间大小,如下 如上,我们可以看到对于未定义属性方法的...

  • 14.类和对象和结构

    生活中的类和对象面向对象编程的思想来源于生活生活中的对象是客观具体的,真实存在的或者曾经存在过的e.g一个活生生的...

  • day14-类和对象

    一、类和对象: 1.理论上的定义类:就是拥有相同功能和相同属性的对象的集合(类是抽象)对象:类的实例(对象是具体的...

  • day14 类和对象

      几天主要学习了python中的类与对象的基础知识。   一、类的声明   类:对拥有相同功能(方法)和相同属性...

网友评论

      本文标题:14作 类和对象

      本文链接:https://www.haomeiwen.com/subject/dbxdzftx.html