python:reflection 反射

CSharp面象对象的语言也有类似的反射 reflection ,曾经近十年前自已在博客园写过。思维方式是一样的。便于根据配置文件,方便切换数据库。切换DAL层即可。

python 复制代码
# encoding: utf-8
# 版权所有 2024 ©涂聚文有限公司
# 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
# 描述:
# Author    : geovindu,Geovin Du 涂聚文.
# IDE       : PyCharm 2023.1 python 3.11
# OS        : windows 10
# Datetime  : 2024/11/19 20:36
# User      : geovindu
# Product   : PyCharm
# Project   : IctGame
# File      : AbstractFactory.py
# explain   : 学习
 
from __future__ import annotations
from abc import ABC, abstractmethod
import os
import sys
from sqlserverinterface.school import ISchool
from common.jsonHelper import JsonHelper
 
class AbstractFactory(ABC):
    """
    工厂方法类
    """
 
    def __init__(self):
        """
        sqlserver、mysql、postgresql
        """
        self.__strsql=self.getDal() #"postgresql"  # 可以根据配置文件,进行切换数据库如是mysql,postgreSQL,sql server
 
    def getDal(self)->str:
        """
 
        :return:
        """
        jsn = JsonHelper()
        self.__strsql = jsn.readDal()
        jsn.readDal()
        return jsn.readDal()
 
    @abstractmethod
    def createSchool(self) -> ISchool:
        """
        生成(创建)接口
        :return:
        """
        #dal = SchoolDal()
        module = __import__(self.__strsql + 'dal.school')
        dal = getattr(module, "SchoolDal")()
        return dal
 
 
相关推荐
谢李由202303220813 分钟前
网络爬虫学习心得
爬虫·python
猕员桃3 分钟前
《Spring Boot 微服务架构下的高并发活动系统设计与实践》
spring boot·微服务·架构
爱意随风起风止意难平4 分钟前
AIGC 基础篇 Python基础 05 元组,集合与字典
开发语言·python·aigc
栗子不爱栗子9 分钟前
从理解AI到驾驭文字:一位技术爱好者的写作工具探索手记
python·学习·ai
鸢时望巧19 分钟前
Shell循环(二)
运维·开发语言
景彡先生25 分钟前
C++ 中的 iostream 库:cin/cout 基本用法
开发语言·c++
vvilkim29 分钟前
Flutter 核心概念:深入理解 StatelessWidget 与 StatefulWidget
开发语言·javascript·flutter
sunly_32 分钟前
Flutter:导航背景固定在顶部,下拉分页布局
开发语言·javascript·flutter
飞翔的佩奇2 小时前
【完整源码+数据集+部署教程】石材实例分割系统源码和数据集:改进yolo11-CA-HSFPN
python·yolo·计算机视觉·毕业设计·数据集·yolo11·石材实例分割系统
悟能不能悟2 小时前
讲一件Java虚拟线程
java·开发语言·oracle