码迷,mamicode.com
首页 > 其他好文 > 详细

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

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

标签:src   cfa   height   setattr   .com   导入模块   shu   oca   导入   

内置函数

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

标签:src   cfa   height   setattr   .com   导入模块   shu   oca   导入   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!