- 1.声明一个电脑类:属性:品牌,颜色,内存大小 方法:打游戏,写代码,看视频
a.创建电脑类的对象,然后通过对象点的⽅方式获取、修改、添加和删除它的属性
b.通过attr相关⽅方法去获取、修改、添加和删除它的属性
class Computer:
def __init__(self, brand, color='black', ram='256G'):
self.brand = brand
self.color = color
self.RAM = ram
def play_game(self, games):
print('%s 支持玩 %s' %(self.brand, games))
def watch_movies(self, movies):
print('%s 可以看 %s' % (self.brand, movies))
@staticmethod
def write_code():
print('支持写代码')
my_computer = Computer('OTA')
print("My computer is %s , its color is %s , RAM is %s" %
(my_computer.brand, my_computer.color, my_computer.RAM))
print("My computer is %s , its color is %s , RAM is %s" %
(getattr(my_computer, 'brand'), getattr(my_computer, 'color'),getattr(my_computer, 'RAM')))
my_computer.color = 'red'
print('The color is %s' % my_computer.color)
setattr(my_computer, 'color', 'white')
print('The color is %s' % getattr(my_computer, 'color'))
my_computer.weight = '5kg'
print('The weight is %s' % my_computer.weight)
setattr(my_computer, 'thick', '10mm')
print('The thick is %s' % getattr(my_computer, 'thick'))
del my_computer.weight
# print(my_computer.weight) # AttributeError: 'Computer' object has no attribute 'weight'
delattr(my_computer, 'thick')
# print(getattr(my_computer, 'thick')) # AttributeError: 'Computer' object has no attribute 'thick'
运行结果:
My computer is OTA , its color is black , RAM is 256G
My computer is OTA , its color is black , RAM is 256G
The color is red
The color is white
The weight is 5kg
The thick is 10mm
- 声明⼀个人的类和狗的类:
狗的属性:名字、颜⾊色、年年龄
狗的⽅方法:叫唤
人的属性:名字、年年龄、狗
人的⽅方法:遛狗
a.创建⼈人的对象⼩小明,让他拥有⼀一条狗⼤大⻩黄,然后让⼩小明去遛⼤大⻩黄
class Dog:
def __init__(self, name, age=2, color='yellow'):
self.name = name
self.age = age
self.color = color
def bark(self):
print('%s can bark' % self.name)
class Person:
def __init__(self, name, age, dog: Dog):
self.name = name
self.age = age
self.dog = dog
def walk_dog(self, dog:Dog):
print('%s 可以遛狗,而且狗的名字是 %s' % (self.name, dog.name))
dog1 = Dog('大黄')
p1 = Person('小明', 18, dog1)
print('%s 有一条狗,名字是 %s' % (p1.name, dog1.name))
p1.walk_dog(dog1)
运行结果:
小明 有一条狗,名字是 大黄
小明 可以遛狗,而且狗的名字是 大黄
-
声明一个圆类
class Circle: def __init__(self, radius, color='white'): self.radius = radius self.color = color self.PI = math.pi def area(self): print('Its area is %.2f' % (self.radius ** 2 * self.PI)) def per(self): print('Its perimeter is %.2f' % (self.PI * 2 * self.radius)) circle1 = Circle(4) circle1.per() circle1.area() 运行结果: Its perimeter is 25.13 Its area is 50.27
-
创建⼀一个学⽣生类:
属性:姓名,年龄,学号
方法:答到,展示学⽣生信息创建⼀一个班级类:
属性:学⽣生,班级名
方法:添加学⽣生,删除学生,点名, 求班上学生的平均年龄
class Student:
def __init__(self, name, age, stu_num, in_class=True):
self.name = name
self.age = age
self.stu_num = stu_num
self.in_class = in_class
def __repr__(self):
return '学生信息如下:\n学生学号:%s\n学生姓名:%s\n学生年龄:%s' % (self.stu_num, self.name, self.age)
def is_in_class(self, state: bool):
if state:
print('%s : 到' % self.name)
else:
print('老师他不在')
class Class:
def __init__(self, class_name):
self.stu = []
self.class_name = class_name
def add_stu(self, stu: Student):
self.stu.append(stu.__dict__)
print('%s 添加成功' % stu.name)
def del_stu(self, stu: Student):
self.stu.remove(stu.__dict__)
print('%s 删除成功' % stu.name)
def ave_age(self):
sum1 = 0
for index in range(len(self.stu)):
sum1 += self.stu[index]['age']
return sum1/len(self.stu)
def call(self, stu: Student):
if stu.__dict__ in self.stu:
return True
else:
return False
def __repr__(self):
str1 = ''
for stu in self.stu:
str1 += (str(stu)[1:-1] + '\n')
return str1
student1 = Student('小明', 23, 'CDpy001')
print(student1)
student2 = Student('小王', 23, 'CDpy002')
print(student2)
student3 = Student('小李', 24, 'CDpy003')
print(student3)
student4 = Student('小黑', 24, 'CDpy004')
print(student3)
student5 = Student('小白', 24, 'CDpy005')
print(student3)
class1 = Class('Python1809')
class1.add_stu(student1)
class1.add_stu(student2)
class1.add_stu(student3)
class1.add_stu(student4)
class1.add_stu(student5)
print(class1)
class1.del_stu(student4)
print(class1)
student1.is_in_class(class1.call(student1))
student2.is_in_class(class1.call(student2))
student3.is_in_class(class1.call(student3))
student4.is_in_class(class1.call(student4))
student5.is_in_class(class1.call(student5))
运行结果:
学生信息如下:
学生学号:CDpy001
学生姓名:小明
学生年龄:23
学生信息如下:
学生学号:CDpy002
学生姓名:小王
学生年龄:23
学生信息如下:
学生学号:CDpy003
学生姓名:小李
学生年龄:24
学生信息如下:
学生学号:CDpy003
学生姓名:小李
学生年龄:24
学生信息如下:
学生学号:CDpy003
学生姓名:小李
学生年龄:24
小明 添加成功
小王 添加成功
小李 添加成功
小黑 添加成功
小白 添加成功
'name': '小明', 'age': 23, 'stu_num': 'CDpy001', 'in_class': True
'name': '小王', 'age': 23, 'stu_num': 'CDpy002', 'in_class': True
'name': '小李', 'age': 24, 'stu_num': 'CDpy003', 'in_class': True
'name': '小黑', 'age': 24, 'stu_num': 'CDpy004', 'in_class': True
'name': '小白', 'age': 24, 'stu_num': 'CDpy005', 'in_class': True
小黑 删除成功
'name': '小明', 'age': 23, 'stu_num': 'CDpy001', 'in_class': True
'name': '小王', 'age': 23, 'stu_num': 'CDpy002', 'in_class': True
'name': '小李', 'age': 24, 'stu_num': 'CDpy003', 'in_class': True
'name': '小白', 'age': 24, 'stu_num': 'CDpy005', 'in_class': True
小明 : 到
小王 : 到
小李 : 到
老师他不在
小白 : 到