Day14 作業

1.聲明?個電腦類: 屬性:品牌、顏?、內存?小 方法:打游戲、寫代碼、看視頻
a.創建電腦類的對象,然后通過對象點的?方式獲取、修改、添加和刪除它的屬性
b.通過attr相關?方法去獲取、修改、添加和刪除它的屬性

"""______lxh______"""


class Computer:
    __slots__ = ('brand', 'color', 'memory', 'size')

    def __init__(self, brand, color, memory):
        self.brand = brand
        self.color = color
        self.memory = memory

    @staticmethod
    def p_game():
        print('打游戲!')

    @staticmethod
    def w_code():
        print('寫代碼!')

    @staticmethod
    def w_video():
        print('看視頻!')


# .相關方法
computer1 = Computer('Lenovo', 'back', '512 GB')
print(computer1.brand, computer1.color, computer1.memory)       # Lenovo back 512 GB
computer1.color = 'red'     # 改
print(computer1.color)      # red
computer1.size = '16寸'      # 加
print(computer1.size)       # 16寸
del computer1.brand         # 刪
# print(computer1.brand)  # AttributeError: brand

# b.attr相關?方法
computer2 = Computer('Huawei', 'gray', '1T')
print(getattr(computer2, 'brand'))      # 查
print(getattr(computer2, 'color'))
print(getattr(computer2, 'memory'))     # Huawei  gray  1T
setattr(computer2, 'brand', 'Lenovo')   # 改
print(getattr(computer2, 'brand'))      # Lenovo
delattr(computer2, 'memory')            # 刪
print(getattr(computer2, 'memory', '0B'))       # 0B
setattr(computer2, 'size', '19寸')       # 加
print(getattr(computer2, 'size'))       # 19寸

2.聲明?個人的類和狗的類:
狗的屬性:名字、顏?色、年年齡
狗的?方法:叫喚
人的屬性:名字、年年齡、狗
人的?方法:遛狗
a.創建?人的對象?小明,讓他擁有?一條狗?大?黃,然后讓?小明去遛?大?黃

class Dog:
    __slots__ = ('name', 'color', 'age')

    def __init__(self, name: str, color: str, age: int):
        self.name = name
        self.color = color
        self.age = age

    def bark(self):
        print('%s: 汪汪汪!' % self.name)


class Person:
    __slots__ = ('name', 'age', 'dog')

    def __init__(self, name: str, age=0, dog=None):
        self.name = name
        self.age = age
        self.dog = dog

    def walk_dog(self):
        if self.dog:
            print('%s遛%s' % (self.name, self.dog.name))
            dog1.bark()
        else:
            print('沒狗!')


dog1 = Dog('大黃', 'yellow', 3)
person1 = Person('小明', 20, dog1)
person1.walk_dog()
# 小明遛大黃
# 大黃: 汪汪汪!

3.聲明?一個圓類,自己確定有哪些屬性和方法

from math import pi


class Circle:
    __slots__ = ('radius', 'girth', 'area')

    def __init__(self, radius):
        self.radius = radius

        self.area = pi * radius ** 2

    def c_girth(self):
        return 2 * pi * self.radius

    def c_area(self):
        return pi * self.radius ** 2


circle1 = Circle(5)
print(circle1.c_girth())    # 周長  31.41592653589793
print(circle1.c_area())     # 面積  78.53981633974483

4.創建?一個學?生類:
屬性:姓名,年齡,學號
方法:答到,展示學?生信息

創建?一個班級類:
屬性:學?生,班級名
方法:添加學?生,刪除學生,點名, 求班上學生的平均年齡

class Student:
    __slots__ = ('name', 'age', 'sno', 'sex', 'class_n')

    def __init__(self, name=None, age=0, sno=None):
        self.name = name
        self.age = age
        self.sno = sno

    def replied(self):
        print('%s: 到!' % self.name)     # 答道

    def message(self):
        print(self.name, self.sno, self.age)    # 打印學生信息


class Class:
    __slots__ = ('stu', 'c_name')

    def __init__(self, c_name, *stu):
        self.stu = list(stu)
        self.c_name = c_name

    def add_stu(self, student):      # 添加學生
        self.stu.append(student)

    def del_stu(self, student):      # 刪除學生
        self.stu.remove(student)

    def r_call(self):       # 點名
        for stu in self.stu:
            print(stu.name)

    def av_age(self):       # 平均年齡
        all_age = 0
        for age in self.stu:
            all_age += age.age
        print(all_age / len(self.stu))


def main():
    stu1 = Student('小明', age=19)
    py1904 = Class('py1904', stu1)
    stu2 = Student('小花', age=20)
    py1904.add_stu(stu2)
    py1904.r_call()     # 小明  小花
    py1904.av_age()     # 19.5


if __name__ == '__main__':
    main()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.聲明?個電腦類: 屬性:品牌、顏?、內存?小 方法:打游戲、寫代碼、看視頻 a.創建電腦類的對象,然后通過對象...
    數番番閱讀 173評論 0 0
  • 1.聲明個電腦類: 屬性:品牌、顏色、內存、大小 方法:打游戲、寫代碼、看視頻a.創建電腦類的對象,然后通過對象點...
    她來聽我的演唱會_4e96閱讀 301評論 0 0
  • 1.聲明?個電腦類: 屬性:品牌、顏?、內存?小 方法:打游戲、寫代碼、看視頻 a.創建電腦類的對象,然后通過對象...
    Tianxiaoyu閱讀 316評論 0 0
  • 1.聲明?個電腦類: 屬性:品牌、顏?、內存?小 方法:打游戲、寫代碼、看視頻 a.創建電腦類的對象,然后通過對象...
    oct___d38e9閱讀 276評論 0 0
  • 平日里,在上班途中我手機是從來不開網絡的,因為發現那樣極耗費電量,這對于一個屌絲配送員來說,是極為恐怖的一件事,所...
    路訊閱讀 315評論 0 2