当前位置: 首页 > news >正文

from import *

项目结构

假设我们的项目结构如下:

my_project/
|-- dataset/
|   |-- __init__.py
|   |-- imbalance_cifar.py
|   |-- balance_cifar.py
|-- main.py

代码示例

1. dataset/imbalance_cifar.py
# dataset/imbalance_cifar.pyclass IMBALANCECIFAR10:def __init__(self, mode, cfg):self.mode = modeself.cfg = cfgprint(f"Initialized IMBALANCECIFAR10 with mode: {mode} and cfg: {cfg}")def get_annotations(self):return ["annotation1", "annotation2"]def get_num_classes(self):return 10
2. dataset/balance_cifar.py
# dataset/balance_cifar.pyclass BALANCECIFAR10:def __init__(self, mode, cfg):self.mode = modeself.cfg = cfgprint(f"Initialized BALANCECIFAR10 with mode: {mode} and cfg: {cfg}")def get_annotations(self):return ["annotation3", "annotation4"]def get_num_classes(self):return 10
3. dataset/__init__.py
# dataset/__init__.pyfrom .imbalance_cifar.py import *
from .balance_cifar.py import *
4. main.py
# main.pyfrom dataset import *# 模拟配置文件中的类名字符串
cfg = {"DATASET": {"DATASET": "IMBALANCECIFAR10"}
}# 动态实例化类
dataset_class = eval(cfg["DATASET"]["DATASET"])
train_set = dataset_class("train", cfg)
valid_set = dataset_class("valid", cfg)# 调用方法
annotations = train_set.get_annotations()
num_classes = train_set.get_num_classes()print("Annotations:", annotations)
print("Number of classes:", num_classes)

注意:

如果没有 __init__.py 文件,使用 from ... import ... 的方式导入模块将会失败。

相关文章:

  • 【linux】内核源码TCP->IP->L2层函数调用继续摸索中
  • win10修改远程桌面端口号,在Windows 10中修改远程桌面端口号的步骤
  • 数据库新技术【分布式数据库】
  • 信息安全、网络安全、网络空间安全傻傻分不清?
  • python18 正则表达式
  • ubuntu查看当前系统版本
  • Spring Security——结合JWT实现令牌的验证与授权
  • 八、yolov8模型预测和模型导出(目标检测)
  • 如何用GO语言实现冒泡排序算法?
  • LeetCode---402周赛
  • Win11 删除文件时提示“找不到该项目,请重试”的解决办法
  • 人工智能--搭建人工神经网络
  • Scala学习笔记14: 模式匹配和样式类
  • 酷瓜云课堂(内网版)v1.1.5 发布,局域网在线学习+考试系统
  • 5步快速了解电商渠道数字化管理||电商API数据采集|数据分析
  • [deviceone开发]-do_Webview的基本示例
  • [iOS]Core Data浅析一 -- 启用Core Data
  • CentOS7 安装JDK
  • cookie和session
  • express.js的介绍及使用
  • JavaScript 基本功--面试宝典
  • leetcode讲解--894. All Possible Full Binary Trees
  • Phpstorm怎样批量删除空行?
  • Python中eval与exec的使用及区别
  • SpringCloud(第 039 篇)链接Mysql数据库,通过JpaRepository编写数据库访问
  • 阿里云Kubernetes容器服务上体验Knative
  • 百度地图API标注+时间轴组件
  • 创建一种深思熟虑的文化
  • 高度不固定时垂直居中
  • 官方解决所有 npm 全局安装权限问题
  • 面试总结JavaScript篇
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 入门到放弃node系列之Hello Word篇
  • 微信端页面使用-webkit-box和绝对定位时,元素上移的问题
  • 微信小程序:实现悬浮返回和分享按钮
  • 想写好前端,先练好内功
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 原生 js 实现移动端 Touch 滑动反弹
  • zabbix3.2监控linux磁盘IO
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​一些不规范的GTID使用场景
  • #define
  • #pragam once 和 #ifndef 预编译头
  • #pragma multi_compile #pragma shader_feature
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (23)Linux的软硬连接
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (pycharm)安装python库函数Matplotlib步骤
  • (zt)最盛行的警世狂言(爆笑)
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转) ns2/nam与nam实现相关的文件