首页 > 代码库 > learn_Day14 内置函数补充、反射、初识面向对象
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 内置函数补充、反射、初识面向对象
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。