声明一个电脑类:
属性:品牌、颜色、内存大小
方法:打游戏、写代码、看视频
a.创建电脑类的对象,然后通过对象点的方式获取、修改、添加和删除它的属性
b.通过attr相关方法去获取、修改、添加和删除它的属性
class Computer:
"""电脑类"""
def __init__(self,brand,color,size):
self.brand = brand
self.color = color
self.size = size
@staticmethod
def play_games(game):
print('打%s游戏'%game)
@staticmethod
def write_code(type):
print('写%s代码'%type)
@staticmethod
def watch_videos(video):
print('看%s电影'%video)
#创建一个电脑对象
comp1 = Computer('戴尔','black','4G')
#获取属性
print(comp1.brand,comp1.color,comp1.size)
#通过getattr获取属性
print(getattr(comp1,'brand'))
#修改属性
comp1.brand = 'mac'
print(comp1.brand)
#通过setattr修改属性
setattr(comp1,'color','red')
print(comp1.color)
#添加属性,显示器大小
comp1.monitor = '14寸'
print(comp1.monitor)
#通过 setattr添加属性
setattr(comp1,'monitor','14寸')
print(comp1.monitor)
删除属性
del comp1.brand
print(comp1.brand)
通过delattr删除属性
delattr(comp1,'brand')
print(comp1.brand)
结果
戴尔 black 4G
戴尔
mac
red
14寸
14寸
声明一个人的类和狗的类:
狗的属性:名字、颜色、年龄
狗的方法:叫唤
人的属性:名字、年龄、狗
人的方法:遛狗
a.创建人的对象小明,让他拥有一条狗大黄,然后让小明去遛大黄
class Dog:
def __init__(self,name,color,age):
self.g_name = name
self.color = color
self.g_age = age
def call(self):
print('%s:叫唤'%(self.g_name))
class Person:
def __init__(self,name,age=18):
self.name = name
self.age = age
#用None来表示对象的零值
self.dog = None
def walk_dog(self):
if self.dog == None:
print('遛狗')
return
print('%s在遛%s'%(self.name,self.dog.g_name))
people = Person('小明',18)
people.dog = Dog('大黄','yellow',2)
print(people.walk_dog())
结果
小明在遛大黄
声明一个矩形类:
属性:长、宽
方法:计算周长和面积
a.创建不同的矩形,并且打印其周长和面积
class Rectangle:
def __init__(self,length,width):
self.length = length
self.width = width
def perimeter(self):
#计算周长
return (self.length+self.width)*2
# print('这个矩形周长为%s'%(result))
def area(self):
#计算面积
return self.length*self.width
# print('这个矩形面积为%s'%(result))
rec1 = Rectangle(20,30)
print(rec1.perimeter())
print(rec1.area())
rec2 = Rectangle(50,78)
print(rec2.perimeter())
print(rec2.area())
结果
100
600
256
3900
4.
创建一个学生类:
属性:姓名,年龄,学号
方法:答到,展示学生信息
创建一个班级类:
属性:学生,班级名
方法:添加学生,删除学生,点名
from random import randint
# if __name__ == '__main__':
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
self.number = 'pu1805'+str(randint(0,50))
def answer(self):
print('%s,到'%self.name)
def show_message(self):
print('name:%s age:%s number:%s' % (self.name, self.age, self.number))
class Class:
def __init__(self,name):
self.name = name
self.students = []
def append_student(self,student):
#添加学生
self.students.append(student)
def del_student(self,name):
for student in self.students[:]:
if student.name == name:
self.students.remove(student)
def call_names(self):
for student in self.students:
#点名
print(student.name)
#答到
student.answer()
cla1 = Class('py1805')
stu1 = Student('张三',18)
stu2 = Student('李四', 17)
stu3 = Student('王五', 16)
cla1.append_student(stu1)
cla1.append_student(stu2)
cla1.append_student(stu3)
cla1.call_names()
结果
张三
张三,到
李四
李四,到
王五
王五,到
写一个类,封装所有和数学运算相关的功能(包含常用功能和常用值,例如:pi, e等)
class Math:
pi = 3.1415926
e = 2.718
@staticmethod
def add(a,b):
return a+b
@staticmethod
def sub(a,b):
#减法
return a-b
@staticmethod
def mul(a,b):
#加法
return a*b
@staticmethod
def div(a,b):
#除法
return a/b
@staticmethod
def rem(a,b):
#取余
return a%b
@staticmethod
def pic(a,b):
# 取整
return a//b
print(Math.add(1,2))
print(Math.div(2,6))
结果
3
0.3333333333333333