首页 > 其他 > 详细

learn_Day14 内置函数补充、反射、初识面向对象

时间:2017-04-02 16:49:37      阅读:221      评论:0      收藏:0      [点我收藏+]

内置函数

  • __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"
lib/accoutn/a

技术分享

技术分享

例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 内置函数补充、反射、初识面向对象

原文:http://www.cnblogs.com/grissom/p/6659277.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!