Python学习第十四天

复习面向对象
面向对象:考虑问题从对象的角度出发
识别对象 分配职责 建立交互
三个特征:
封装:分而治之,变则疏之 [分]
继承:抽象、统一、隔离变化 [隔]
多态:体现子类个性(变化) [做]
六个原则:
开闭原则:能够增加新功能,不修改客户端代码.
单一职责:小而精,有且只有一个改变的原因
依赖倒置:使用抽象(爸爸),不适用具体(儿子)
组合复用:优先使用组合关系,不是继承关系.
继承:统一变化(交通工具约束火车汽车在运输的行为上是一致的)
组合:连接变化(人通过变量调用交通工具)
里氏替换:形参是父,实参可以是各种子类。
建议扩展重写
迪米特:通过抽象隔离调用(低耦合)

"""
    基本的操作:增删改查
    分配职责:
        界面视图类View:负责处理界面逻辑,比如显示菜单,获取输入,显示结果等。
        逻辑控制类Controller:负责存储学生信息,处理业务逻辑。比如添加、删除等
        数据模型类Model:定义需要处理的数据类型。比如学生信息。 
"""
list01 = []
# 增加
list01.append(10)
list01.append(20)
# 修改
list01[0] = 100
# 查询
print(list01[0])
# 删除
list01.remove(10)
del list01[0]


"""
    基本调用
"""

class XXView:
    def __init__(self):
        self.controller = XXController()

    def func01(self):
        self.controller.func02()

class XXController:
    def func02(self):
        print("func02执行喽")

view = XXView()# 内部创建Controller
view.func01() # 内部调用func02


"""
    模块
    练习:
        将student_info_manager.py分解为4个模块
            -- bll.py --> 业务business 逻辑logic 层layer
                          存储Controller类
            -- usl.py --> 用户user 显示show 层layer
                          存储View类
            -- model.py --> 存储数据模型Model
            -- main.py  --> 存储入口代码
"""
# 建议设置项目根目录
#  -- 在day14文件夹上,右键选择"Mark Directory as"
#  -- 在选择"Sources Root"

# 导入方式1: 创建变量module01关联该模块
# 语法:
# import 模块
# 模块.成员
# 适合:面向过程的技术(全局变量、函数)

import module01

module01.func01()

# m01 = module01.MyClass()
# m01.func02()


# 导入方式2: 将该模块成员导入到当前作用域中
# 语法:from 文件名 import 内容
# 适合:面向对象的技术(类)
# from module01 import func01
from module01 import MyClass

# func01()

# m01 = MyClass()
# m01.func02()

# 导入方式3: 将该模块所有成员导入到当前作用域中
# 语法:from 文件名 import *
# 适合:面向对象的技术(类)
from module01 import *

func01()

m01 = MyClass()
m01.func02()

学生信息管理系统MVC

"""
    学生信息管理系统MVC
"""


# 2.数据模型
class StudentModel:
    """
        学生数据模型
        对具体学生信息进行抽象
    """

    def __init__(self, name="", age=0, score=0, sid=0):
        self.name = name
        self.age = age
        self.score = score
        # 学生编号:对数据进行唯一标识(全球唯一标识符)
        self.sid = sid  # 自增长1001   1002   1003

    # 对某个数据进行有效性验证
    @property
    def score(self):
        return self.__score

    @score.setter
    def score(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值