Python学习基础笔记六十一——反射
例1:
class Teacher:
dic = {查看学生信息: , 查看讲师信息: }
def show_student(self):
print(show student)
def show_teacher(self):
print(show teacher)
@classmethod
def func(cls):
print(class method!)
# hasattr getattr delattr
ret = getattr(Teacher, dic)
print(ret)
ret2 = getattr(Teacher, func)
ret2()
例2:
class Teacher:
dic = {查看学生信息: , 查看讲师信息: }
def show_student(self):
print(show student)
def show_teacher(self):
print(show teacher)
@classmethod
def func(cls):
print(class method!)
# hasattr getattr delattr
if hasattr(Teacher, dic):
ret = getattr(Teacher, dic)
print(ret)
例3:
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(class method!)
# hasattr getattr delattr
alex = Teacher()
for k in Teacher.dic:
print(k)
key = input(输入需求: )
if hasattr(alex, Teacher.dic[key]):
func = getattr(alex, Teacher.dic[key])
func()
网络编程,反射将非常好用。
# 对象名获取对象属性和普通方法
# 类名获取静态属性和类方法和静态方法
# 普通方法 self
# 静态方法: @staticmethod
# 类方法: @classmethod
# 属性方法 @property
# 继承
# 封装
