zoukankan      html  css  js  c++  java
  • Python面向对象高阶描述符与设计魔术方法

    Python面向对象高阶-描述符与设计魔术方法

    描述符

    当一个类包含了三个魔术方法之一就成为描述符类,三个方法(get,set___,delete)

    作用

    描述符的作用就是对一个类中的某个成员进行一个详细的管理操作(获取,修改,删除)

    描述符就是代理了一个类中的成员操作

    代码示例

    # 描述符类实际应用
    # 定义学生类,记录id,名字,分数
    # 学员的分数只能在1-100之间
    '''
    解决方法:
        在init中检查score的范围,但只能在初始化时约束,初始化成功后还可以使用self.score进行更改
        使用__setattr__(self, key, value)可以判断解决
        使用描述符代理解决
    '''
    class Score():
        __score = 1
    
        def __get__(self, instance, owner):
            return self.__score
    
        def __set__(self, instance, value):
            if value > 0 and value <= 100:
                self.__score = value
            else:
                print('重新输入')
    
    
    class Student():
        score = Score()
    
        def __init__(self, id, name, score):
            self.id = id
            self.name = name
            self.score = score
    
        def returnMe(self):
            return f'''
            编号:{self.id}
            姓名:{self.name}
            成绩:{self.score}
            '''
    
    
    # 实例化对象
    s = Student('1', 'python', 11)
    print(s.returnMe())
    s.score = -99
    print(s.returnMe())
    

    设计模式

    代码步骤和设计进行总结和归纳形成设计模式

    设计模式是面向对象编程的设计

    单例设计模式

  • 相关阅读:
    学习进度16
    个人总结
    人月神话阅读笔记09
    人月神话阅读笔记08
    人月神话阅读笔记07
    构建之法阅读笔记06
    构建之法阅读笔记05
    构建之法阅读笔记04
    构建之阅读笔记03
    Python安装 pip 和 easy_install
  • 原文地址:https://www.cnblogs.com/hekaiqiao/p/15720016.html
Copyright © 2011-2022 走看看