python面向对象03
"""组合:一个类对象是另一个类对象的属性"""
# 学生类
## 姓名 性别 年龄 学号 班级 手机号
#课程类
## 班级名称 期数 讲师
class Student:
def __init__(self,name,sex,age,stuid,stucls,phone):
self.name = name
self.sex = sex
self.age = age
self.stuid = stuid
self.stucls = stucls
self.phone = phone
class Clas:
def __init__(self,Cla_class,begint,teacher):
self.Cla_class = Cla_class
self.begint = begint
self.teacher = teacher
#班级1
clas_1 = Clas('s2','2020-09-20','teacher1')
clas_2 = Clas('s3','2019-10-20','teacher2')
#学生1
stu1 =Student('user01','male',27,'023',clas_1,12345323335)
stu2 =Student('user02','male',27,'025',clas_2,12354323453)
# 查看stu1的班级的开班日期
print(stu1.stucls,clas_1) #<__main__.Clas object at 0x000001476B9C2C18> <__main__.Clas object at 0x000001476B9C2C18>
print(stu1.stucls.begint) #2020-09-20
#创建两个班级 linux50
#创建两个班级 python23
# 查看linux50期所学课程的价格
# 查看python23期所学课程的周期
###############################################################################
"""
练习题:
1.求圆环的面积。大圆和小圆之间的面积 注意:圆心一样
"""
#求圆环的面积
from math import pi
class Circle:
def __init__(self,r):
self.r = r
def area(self):
return pi * self.r**2
def perimeter(self):
return 2 * pi * self.r
#圆环
class Ring:
def __init__(self,outer_r,inner_r):
outer_r,inner_r = (outer_r,inner_r) if outer_r > inner_r else (inner_r,outer_r)
self.out_r = Circle(outer_r)
self.in_r = Circle(inner_r)
def area(self):
return self.out_r.area() - self.in_r.area()
def perimeter(self):
return self.out_r.perimeter() - self.in_r.perimeter()
# print(Ring(10,8).area())
# print(Ring(10,8).perimeter())
# print(Ring(8,10).area())
# print(Ring(8,10).perimeter())
##############################################################################
"""理解以下"""
"""
父类的子类方法的选择:
子类的对象如果去调用,永远优先调用自己的。
如果自己有,用自己的;如果自己没有,用父类的
如果自己有还想用父类的,直接在子类的方法中调用父类的方法。父类名.方法名(self)
"""
class Foo:
def __init__(self):
self.func()
def func(self):
print('in foo')
class Son(Foo):
def func(self):
print('in son')
Son()
欢迎转载,但要标明出处.否则追究.欢迎大家阅读收藏和评论,会更新很多精粹。

浙公网安备 33010602011771号