A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

首先目录结构,conf文件夹的settings.py配置文件中配置两个类路径,写一段程序读取这个配置文件,并将类路径实例化成对象执行相关功能.
1.配置文件 settings.py:

MODE = "RAYLU"

FUNC = {
    "customer":"src.customer.Customer",
    "sales":"src.sales.Sales",
}
2.配置文件中配置的两个类Customer和Sales文件

class Customer(object):
    def __init__(self):
        pass

    def run(self):
        print("")
        return "i am customer"
class Sales(object):
    def __init__(self):
        pass

    def run(self):
        print("")
        return "i am sales"
3.读取配置文件内容,并通过反射方式实例化类对象

# import sys,os
# curPath = os.path.abspath(os.path.dirname(__file__))
# rootPath = os.path.split(curPath)[0]
# print(rootPath)
# sys.path.append(rootPath)

from reflect.conf.settings import FUNC
from reflect.conf.settings import MODE
import importlib,re

print(MODE)
for k,v in FUNC.items():
    #
    # ret_v = v.split(".")
    # ret=ret_v[0]
    # cls_name = ret_v[-1]
    # for item in range(1,len(ret_v)-1):
    #     ret+= "."+ret_v[item]
    #上面代码简写:
    ret,cls_name = v.rsplit(".",maxsplit=1) # rsplit()从最后边开始往前分割  #splitlines()通过换行符进行分割
    print(ret,cls_name)

    m = importlib.import_module(ret) #导入文件模块
    cls = getattr(m,cls_name) #通过getattr()获取模块内容,获取类名
    response = cls().run() #创建类对象并执行对象函数,获取想要的结果
    print(response)

4 个回复

倒序浏览
棒~
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马