zoukankan      html  css  js  c++  java
  • 反射和类内置方法

    # 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('func')
    #
    # chen = Teacher()
    # key = input('input:')
    # if hasattr(chen, Teacher.dic[key]):
    #     func = getattr(chen, Teacher.dic[key])
    #     print(func)
    
    # class A:
    #     name = '1'
    #
    #     def func(self):
    #         print('aaaaaa')
    #
    # a = A()
    # if hasattr(a, 'name'):
    #     ret1 = getattr(a, 'name')
    #     ret2 = getattr(a, 'func')
    #     print(ret1)
    #     ret2()
    
    class A:
        pass
        def __str__(self):
            return '>>str'
    
        def __repr__(self):
            return 'repr'
    
    # %s print()和str(obj)都是调用__str__
    # repr(obj)和%r都是调用__repr__
    # 如果本类无__str__, 就实现__repr__, repr是str的备胎,但str不能做repr的备胎
    
    a = A()
    print(a)    # 打印对象就是调用__str__方法,如果本类无实现str方法,会调用object的__str__(内存地址)
    print('%s' %a)
    print(str(a))
    
    print(repr(a))
    print('%r'%a)
    
    # class A:
    #     def __init__(self, name):
    #         self.name = name
    #
    #     def __call__(self):
    #         print(self.__dict__)
    #
    # a = A('chen')()
  • 相关阅读:
    数据库连接池
    数据库操作
    cookie/session
    楼梯问题
    Response/Request
    Web
    Exception
    jQuery效果与事件方法
    jQuery基础知识点
    布局的几种形式
  • 原文地址:https://www.cnblogs.com/hhsh/p/9652655.html
Copyright © 2011-2022 走看看