learn_Day14 内置函数补充反射初识面向对象
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了learn_Day14 内置函数补充反射初识面向对象相关的知识,希望对你有一定的参考价值。
内置函数
- __import__()用于导入模块
- getattr 用于寻找模块的指定对象
- a = __import__(‘b’) # b为模块名,b是字符串 ==>> 导入模块b并重新命名为a
- c = getattr(a,’d’) # d为模块中指定对象 ==>> 找到模块中命名为d的对象
- d() ==>> 执行d
# getattr(a,’b’, c) # 从a模块中导入b。c参数可不写表示找不到报错;c为None表示找不到不报错,返回None。 # hasattr(a,’b’) # 判断a中b模块是否存在。 # setattr(a,’b’, c) # 在内存中我模块a创建b=c。 # delattr(a,’b’) # 在内存中删除模块a中的b。
反射
定义:根据字符串去某个对象中去操作其成员
- 通过字符串形式导入模块
- 通过字符串形式去模块中寻找并执行
例1:导入lib/account中的a并执行
# /usr/local/bin/python # -*- coding: utf-8 -*- # Author: Ren Hang def login(): return "login" def logout(): return "logout" def nb(): return "niu"
例2:模拟web框架
# 模拟web框架 from lib.account import a url = input("shuru:") inp = url.split(‘/‘)[-1] if hasattr(a, inp): target_func = getattr(a, inp) r = target_func() print(r) else: print("404")
以上是关于learn_Day14 内置函数补充反射初识面向对象的主要内容,如果未能解决你的问题,请参考以下文章
面向对象中特殊方法的补充isinstance/issubclass/type方法和函数反射
python3全栈开发-内置函数补充,反射,元类,__str__,__del__,exec,type,__call__方法