1.声明⼀个电脑类: 属性:品牌、颜⾊、内存⼤小 方法:打游戏、写代码、看视频
a.创建电脑类的对象,然后通过对象点的⽅方式获取、修改、添加和删除它的属性
b.通过attr相关⽅方法去获取、修改、添加和删除它的属性
class Computer:
def __init__(self, type, color, memory):
self.type = type
self.color = color
self.memory = memory
def play_game(self):
print('打游戏')
def see_video(self):
print('看电视')
def write_code(self):
print('写代码')
# 声明对象
c = Computer('雷神', 'black', '8G')
# 1.获取
print(c.type) # 雷神
print(getattr(c, 'type', '没有该属性')) # 雷神
# 2.修改
c.type = '战神'
print(c.type) # 战神
setattr(c, 'type', '神州')
print(c.type) # 神州
# 3.添加
c.add_1 = 'add_1'
setattr(c, 'add_2', 'add_2')
print(c.__dict__)
# {'type': '神州', 'color': 'black', 'memory': '8G', 'add_1': 'add_1', 'add_2': 'add_2'}
# 4.删除
del c.add_1
delattr(c, 'add_2')
print(c.__dict__) # {'type': '神州', 'color': 'black', 'memory': '8G'}
结果:
雷神
雷神
战神
神州
{'type': '神州', 'color': 'black', 'memory': '8G', 'add_1': 'add_1', 'add_2': 'add_2'}
{'type': '神州', 'color': 'black', 'memory': '8G'}
2.声明⼀个人的类和狗的类:狗的属性:名字、颜⾊色、年年龄狗的⽅方法:叫唤人的属性:名字、年年龄、狗人的⽅方法:遛狗
a.创建⼈人的对象⼩小明,让他拥有⼀一条狗⼤大⻩黄,然后让⼩小明去遛⼤大⻩黄
代码:
class Person:
def __init__(self, name, age, dog):
self.name = name
self.age = age
self.dog = dog
def walk_dog(self):
print('%s在遛%s狗' % (self.name, self.dog.name))
class Dog:
def __init__(self, name, color, age):
self.name = name
self.color = color
self.age = age
def bark(self):
print('狗叫')
d = Dog('大黄', 'yellow', 3)
p = Person('小明', 18, d)
p.walk_dog() # 小明在遛大黄狗
结果
小明在遛大黄狗
3.声明一个矩形类,属性长,宽,方法:计算周长,面积a.创建不同的矩形,打印周长,面积:
class Rect:
def __init__(self, long, wide):
self.long = long
self.wide = wide
def area(self):
"""计算面积"""
return self.long * self.wide
def perimeter(self):
"""计算周长"""
return (self.long + self.wide) * 2
r1 = Rect(10, 5)
r2 = Rect(1.5, 1.5)
print('矩形r1的面积是:%0.3f,周长是%0.2f' % (r1.area(), r1.perimeter()))
print('矩形r2的面积是:%0.3f,周长是%0.2f' % (r2.area(), r2.perimeter()))
结果:
矩形r1的面积是:50.000,周长是30.00
矩形r2的面积是:2.250,周长是6.00
4.创建⼀个学生类: 属性:姓名,年龄,学号方法:答到,展示学⽣生信息创建一个班级类:属性:学⽣,班级名方法:添加学生,删除学生,点名, 求班上学生的平均年龄
代码:
class Student:
def __init__(self, name, age, stu_id):
self.name = name
self.age = age
self.stu_id = stu_id
def answer(self):
print('%s答到' % self.name)
def student_info(self):
print('学生详情:学号:%s,姓名:%s,年龄:%d' % (self.stu_id, self.name, self.age))
class Class:
def __init__(self, class_name):
self.students = []
self.class_name = class_name
def shout_id(self, student):
print('点名:%s' % student.name)
for i in self.students:
if student == i:
student.answer()
student.student_info()
break
else:
print('班级没有这名学生')
def add_student(self, student):
self.students.append(student)
print('%s添加成功' % student.name, end='\t')
def del_student(self, student):
i = 0
while i < len(self.students):
if student == self.students[i]:
del self.students[i]
print('删除成功')
break
else:
i += 1
else:
print('没有该名学生')
def average(self):
sum1 = 0
for i in self.students:
sum1 += i.__dict__['age']
return sum1 / len(self.students)
def show_student(self):
print('%s班共有%d名学生:' % (self.class_name, len(self.students)))
for i in self.students:
print(i.__dict__['name'], end='\t')
s1 = Student('小明', 18, 'stu_01')
s2 = Student('小花', 19, 'stu_02')
s3 = Student('小黑', 38, 'stu_03')
s4 = Student('小黄', 48, 'stu_04')
# 创建班级对象
c1 = Class('python1808')
c1.add_student(s1)
c1.add_student(s2)
c1.add_student(s3)
c1.add_student(s4)
# c1.del_student(s1)
# c1.del_student(s3)
# c1.del_student(s2)
# c1.del_student(s2)
print()
c1.show_student()
print()
c1.shout_id(s1)
c1.shout_id(s2)
c1.del_student(s2)
c1.shout_id(s2)
print("平均年龄是:", c1.average())
结果:
小明添加成功 小花添加成功 小黑添加成功 小黄添加成功
python1808班共有4名学生:
小明 小花 小黑 小黄
点名:小明
小明答到
学生详情:学号:stu_01,姓名:小明,年龄:18
点名:小花
小花答到
学生详情:学号:stu_02,姓名:小花,年龄:19
删除成功
点名:小花
班级没有这名学生
平均年龄是: 34.666666666666664