2018-10-17 面向对象基础作业

  1. 声明一个电脑类
    属性:品牌、颜色、内存大小
    方法:打游戏、写代码、看视频

a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
b.通过attr相关方法去获取、修改、添加和删除它的属性

class Computer:
    __slots__ = ('type', 'color', 'cpu', 'price')
    def __init__(self, type, color, cpu):
        self.type = type
        self.color = color
        self.cpu = cpu
    def play_game(self):
        print("play game")
    def program(self):
        print("write a program")
    def watch(self):
        print("see mp4")

com = Computer("华硕", "黑色", 4)
# 获取
print(com.color)
# 修改
com.type = '戴尔'
print(com.type)
# 添加
com.price = 7777
print(com.price)
# 删除
del com.color
# print(com.color)


com2 = Computer("外星人", "酒红色", 16)
# 获取
print(getattr(com2, 'type'))
# 修改
setattr(com2, 'color', '白色')
print(com2.color)
# 添加
setattr(com2, 'price', 15555)
print(com2.price)
# 删除
delattr(com2, 'price')

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

class Person():
    def __init__(self, name, age):
        self.name = name
        self.age = age
        self.dog = None    #dog属性的类型是Dog
    def run_dog(self):
     #   self.dog.shout()    # 人让狗叫
        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()

class Dog():
    def __init__(self, name, color, age):
        self.name = name
        self.color =color
        self.age = age
    def shout(self):
        print("狗在叫!")

dog = Dog("旺旺", '白色', 1)

pe = Person('小明', 13, dog)

pe.dog = dog
pe.run_dog()
# 打印结果:小明在遛旺旺呢

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

class Rect():
    def __init__(self, longth, width):
        self.longth = longth
        self.width = width
    def girth(self):
        return 2*(self.width+self.longth)
    def area(self):
        return self.longth*self.width

rect1 = Rect(3, 4)
print(rect1.girth(), rect1.area())

rect2 = Rect(12, 5)
print(rect2.girth(), rect2.area())

你可能感兴趣的:(2018-10-17 面向对象基础作业)