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
 
 
相关推荐
子午3 分钟前
道路车辆检测与计数系统~Python+YOLOV8算法+深度学习+人工智能+Web可视化界面
人工智能·python·yolo
yuanpan4 分钟前
Python + Selenium 浏览器自动化测试与网页自动登录
开发语言·python·selenium
Wy_编程5 分钟前
Go语言中的指针
开发语言·后端·golang
零壹AI实验室13 分钟前
云原生微服务踩坑记:187个服务降到23个,故障率降低90%
微服务·云原生·架构
郑寿昌14 分钟前
AI原生存储架构:存算智一体革命
架构·ai-native
辞忧九千七14 分钟前
前后端分离架构实战与项目落地:AI智能学习笔记管理系统
python·html·axios·css3·fastapi·dify
不想写代码的星星18 分钟前
C++协程从入门到放弃?不,是从入门到手搓调度器
开发语言·c++
2601_9577867720 分钟前
星链引擎矩阵系统:流批一体湖仓架构与亿级数据实时数仓技术实践
大数据·矩阵·架构
m0_6315298222 分钟前
如何在非组件文件中动态读取 Redux Store 中的值以配置主题颜色
jvm·数据库·python
m0_7335654623 分钟前
SQL如何统计每日新增用户数_窗口函数与日期维度的结合
jvm·数据库·python