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"
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 内置函数补充反射初识面向对象的主要内容,如果未能解决你的问题,请参考以下文章

Python学习第14篇:面向对象之反射以及内置方法

内置函数补充 之 反射

1面向对象内置函数 2反射 3内置方法

面向对象中特殊方法的补充isinstance/issubclass/type方法和函数反射

Python 基础第二十三天(反射)

python3全栈开发-内置函数补充,反射,元类,__str__,__del__,exec,type,__call__方法