zoukankan      html  css  js  c++  java
  • 面向对象进阶-反射、面向对象图式总结(一)

     反射

    #反射 *****
    # 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

    # 继承
    # 封装的

    #面向对象图式总结


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

  • 相关阅读:
    秒杀应用的MySQL数据库优化
    mongodb三种存储引擎高并发更新性能专题测试
    一次项目实践中DBCP数据库连接池性能优化
    初识中间件之消息队列
    Android性能测试--内存
    JVM源码分析之栈溢出完全解读
    case when then end
    工厂模式
    单例模式
    隐藏响应的server,X-Powered-By
  • 原文地址:https://www.cnblogs.com/mys6/p/10665950.html
Copyright © 2011-2022 走看看