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
 
 
相关推荐
当下新鲜事1 小时前
面向印刷包装设备的运动控制方案架构:E530标准型伺服系统与AC500 PLC的分层设计与选型实施
架构
小徐不徐说1 小时前
序列化与反序列化:把 C++ 对象可靠地保存下来
开发语言·数据库·c++·php
ragnwang2 小时前
Notes: Python pybind11 import C++ module
开发语言·c++·python
王中阳Go2 小时前
后端转 Agent 岗面试怎么答:8 个高频问题与应答口径
人工智能·后端·python·大语言模型
Wang's Blog2 小时前
Java 项目实战: 交友项目 - 搜索附近的功能概述和分析
java·开发语言·交友
海宇AI2 小时前
零信任架构实战:基于海宇个人风险报告构建自动化分期商城信用额度初审网关
运维·人工智能·架构·自动化
骑着蜗牛撵大象3272 小时前
大模型 Agent 的沙箱护栏:gVisor 隔离、出口白名单与审计闭环
java·开发语言·jvm·安全·agent沙箱·gvisor·microvm
weixin_307779133 小时前
RAG 面试陷阱——混合检索并非无条件优越:一个条件反转实验
人工智能·python·面试·职场和发展
AUTOSAR组织3 小时前
AUTOSAR架构下信息安全的实现方案
架构·汽车·autosar·软件架构·培训
Dxy12393102163 小时前
JS DES 加密详解
开发语言·javascript·arcgis