# 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')()