1. 声明一个电脑类
-
属性:品牌、颜色、内存大小
-
方法:打游戏、写代码、看视频
-
a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
-
b.通过attr相关方法去获取、修改、添加和删除它的属性
声明类Computer类
class Computer(object):
"""这是一个电脑类"""
def __init__(self, brand, color, memory):
self.brand = brand
self.color = color
self.memory = memory
def play_game(self):
print('正在打游戏')
def programme(self):
print('正在编写程序')
def witch_move(self):
print('正在看电视')
def __str__(self):
return str(self.__dict__)
# 创建电脑对象
comp1 = Computer('联想', '黑色', '4G')
comp2 = Computer('华硕', '白色', '8G')
# a. 获取属性值(对象.属性名)
print(comp1.brand, comp1.color, comp1.memory)
print(comp2.brand, comp2.color, comp2.memory)
# 修改和添加对象属性
comp1.brand = 'acer'
comp2.memory = '16G'
comp1.cpu_type = 'Inter'
print(comp1.brand, comp1.color, comp1.memory, comp1.cpu_type)
print(comp2.brand, comp2.color, comp2.memory)
# 删除属性
del comp1.color
print(comp1.brand, comp1.memory, comp1.cpu_type)
print(comp2.brand, comp2.color, comp2.memory)
# b. 获取对象属性(attr的相关方法)
# 获取对象属性值
print(getattr(comp1, 'brand', '未知品牌'))
print(getattr(comp1, 'brands', '未知品牌'))
# 添加和修改对象属性值
# 添加
setattr(comp2, 'cpu_type', '酷睿')
print(getattr(comp2, 'cpu_type', '未知'))
# 修改
setattr(comp1, 'brand', '战神')
print(getattr(comp1, 'brand', '未找到'))
# 删除属性
print(comp1)
print(comp2)
delattr(comp2, 'cpu_type')
print(comp2)
2.声明一个人的类和狗的类:
狗的属性:名字、颜色、年龄
狗的叫法:叫唤
人的属性:名字、 年龄、狗
人的方法:遛狗
a.创建人的对象名字叫小明,让他拥有一条狗 ,然后让小明去遛狗
class Person(object):
"""人类"""
def __init__(self, name, age, dog):
self.name = name
self.age = age
self.dog = dog
def walk_dog(self):
print('%s 正在遛狗!' % self.name)
class Dogs(object):
"""狗类"""
def __init__(self, name, color, age):
self.dog_name = name
self.color = color
self.dog_age = age
def call(self):
print('%s! %s! %s!' % (self.dog_name, self.dog_name, self.dog_name))
dog1 = Dogs('大黄', '黄色', 2 )
per1 = Person('小明', 18, dog1)
per1.walk_dog()
3.声明一个矩形类:
属性: 长、宽
方法:计算周长和面积
a.创建不同的矩形,并且打印其周长和面积
声明类
class Rectangle(object):
"""矩形类"""
def __init__(self, long = 0, wide = 0):
self.long = long
self.wide = wide
@staticmethod
def judge(long, wide):
return long.isalnum() and wide.isalnum()
def perimeter(self):
print('周长:%.2f' % (2 * int(self.long) + 2 * int(self.wide)))
def area(self):
print('面积:%.2f' % (int(self.long) * int(self.wide)))
# 创建对象
rec1 = Rectangle(8, 12)
rec1.perimeter()
rec1.area()
4.创建一个学生类:
属性:姓名,年龄,学号,成绩
方法:答到,展示学生信息
创建一个班级类: 属性:学生,班级名
方法:添加学生,删除学生,点名, 获取班级中所有学生的平均值, 获取班级中成绩最好的学生
# 创建学生类
"""
name: [students,stu2,stu3],
name: [students,stu2,stu3],
"""
class Student(object):
"""这是一个学生类"""
def __init__(self, name, age, stu_id, score):
self.name = name
self.age = age
self.stu_id = stu_id
self.score = score
def here(self):
print('%s 到!'% self.name)
def __str__(self):
return '学号:' + self.stu_id + ' 姓名:' + self.name + ' 年龄:' \
+ self.age + ' 成绩:' + self.score
# 创建班级类
# 方法:添加学生,删除学生,点名, 获取班级中所有学生的平均值, 获取班级中成绩最好的学生
class Class(object):
"""这是一个班级类"""
def __init__(self, class_name, student = []):
self.class_name = class_name
self.student = student
def add_student(self):
while True:
num = input('请输入学生学号:')
name = input('请输入学生姓名:')
age = input('请输入学生年龄:')
score = input('请输入学生成绩:')
new_stu = Student(name, age, num, score)
self.student.append(new_stu)
# all_class.append(self)
# all_class.append(new_class)
print('添加成功!')
print('1、继续\n2、退出')
value = input('请输入选择:')
if value == '1':
continue
else:
break
def del_student(self):
name = input('请输入姓名:')
index = 0
for stu in self.student:
if stu.name == name:
del self.student[index]
index += 1
def dianming(self):
name = input('请输入姓名:')
for stu in self.student:
if stu.name == name:
print(stu)
stu.here()
def show_info(self):
for stu in self.student:
print(stu)
# 界面
while True:
print('1、创建对象')
print('2、退 出')
value = input('请选择:')
if value == '1':
class_name = input('请输入班级名:')
new_class = Class(class_name)
print('创建成功')
while True:
print('1、添加学生\n2、删除学生\n3、点名\n4、获取所有信息\n5、返回上层')
value = input('请选择:')
if value == '5':
break
elif value == '1':
new_class.add_student()
continue
elif value == '2':
new_class.del_student()
elif value == '3':
new_class.dianming()
elif value == '4':
new_class.show_info()
else:
break
网友评论