• 面向对象进阶-反射、面向对象图式总结(一)


     反射

    #反射 *****
    # name = 'alex'
    # 'name'

    class Teacher:
        dic = {'查看学生信息':'show_student','查看讲师信息':'show_teacher'}
        def show_student(self):
            print('show_student')

        def show_teacher(self):
            print('show_teacher')

        @classmethod
        def func(cls):
            print('hahaha')
    alex = Teacher()
    for k in Teacher.dic:
        print(k)
    key = input('输入需求 :')
    # print(Teacher.dic[key])
    if hasattr(alex,Teacher.dic[key]):
        func = getattr(alex,Teacher.dic[key])
        func()
    # # alex.show_student()  'show_student'
    # func = getattr(alex,'show_student')
    # func()

    # hasattr getattr delattr
    # if hasattr(Teacher,'dic'):#hasattr、getattr搭配使用,'dic'有就取,没有就不取(没有不会报错)
    #     ret = getattr(Teacher,'dic')   # Teacher.dic   # 类也是对象,通过‘dic’字符串去命名空间去找dic对于的变量,找到后返回
    # # ret2 = getattr(Teacher,'func')         # 类.方法  teacher.func,返回方法名的内存地址
    # # ret2()
    #     print(ret)


    # menu = Teacher.dic
    # for k in menu:
    #     print(k)

    # 通过反射
    # 对象名 获取对象属性 和 普通方法
    # 类名 获取静态属性 和类方法 和 静态方法

    # 普通方法 self
    # 静态方法 @staticmethod
    # 类方法 @classmethod
    # 属性方法 @property

    # 继承
    # 封装的

    #面向对象图式总结


    # 学员管理系统 : 开发规范
    # 整理面向对象的所有知识点
    # 时间计划表 :周末干什么 中等偏下的 每周来一天自习

  • 相关阅读:
    QT,QVector 基本用法,遍历[实例讲解]
    QT boolinq
    Qt532.QString_填充字符
    QT AES加密
    允许ubuntu下mysql远程连接
    Curl参数一览
    PHP实现http与https转化
    LINUX查看硬件配置命令
    使用.htaccess的时候服务器出现500错误(在配置后台时出现)
    64位win7旗舰版搭建apache+php+mysql开发环境
  • 原文地址:https://www.cnblogs.com/mys6/p/10665950.html
Copyright © 2020-2023  润新知