- Python实现简单的机器学习算法
master_chenchengg
pythonpython办公效率python开发IT
Python实现简单的机器学习算法开篇:初探机器学习的奇妙之旅搭建环境:一切从安装开始必备工具箱第一步:安装Anaconda和JupyterNotebook小贴士:如何配置Python环境变量算法初体验:从零开始的Python机器学习线性回归:让数据说话数据准备:从哪里找数据编码实战:Python实现线性回归模型评估:如何判断模型好坏逻辑回归:从分类开始理论入门:什么是逻辑回归代码实现:使用skl
- 100天持续行动—Day01
Richard_DL
今天开始站着学习,发现效率大幅提升。把fast.ai的Lesson1的后半部分和Lesson2看完了。由于Keras版本和视频中的不一致,运行notebook时经常出现莫名其妙的错误,导致自己只动手实践了视频中的一小部分内容。为了赶时间,我打算先把与CNN相关的视频过一遍。然后尽快开始做自己的项目。明天继续加油,争取把Lesson3和Lesson4看完。
- yolov5>onnx>ncnn>apk
图像处理大大大大大牛啊
opencv实战代码讲解yoloonnxncnn安卓
一.yolov5pt模型转onnx条件:colabnotebookyolov51.安装环境!pipinstallonnx>=1.7.0#forONNXexport!pipinstallcoremltools==4.0#forCoreMLexport!pipinstallonnx-simplifier2.修改common.py在classFocus下面
- 在服务器计算节点中使用 jupyter Lab
ranshan567
程序人生
JupyterLab是一个基于网页的交互式开发环境,用于科学计算、数据分析和机器学.jupyterlab是jupyternotebook的下一代产品,集成了更多功能,使用起来更方便.在进行数据分析及可视化时,个人电脑不能满足大数据的分析需求,就需要用到高性能计算机集群资源,然而计算机集群的计算节点往往没有联网功能,所以在计算机集群中使用jupyterLab需要进行一些配置。具体的步骤如下:
- python 标准库之openpyxl的常规操作
真的学不了一点。。。
Python学习python
目录openpyxl(Excel文件处理模块)读sheet读sheet中单元格合并单元格openpyxl模块基本用法安装方法基本使用读取Excel文档(一)获取工作表(二)获取单元格(三)获取行和列写入Excel文档(一)写入单元格(二)保存文件设置单元格样式(一)字体(二)对齐方式(三)边框(四)设置行高和列宽(五)合并和拆分单元格openpyxl(Excel文件处理模块)读sheet读取Exc
- Python 初学者入门必知: Anaconda是什么?有什么作用?怎么使用?
懒大王爱吃狼
Python基础python开发语言python基础python学习anacondaanaconda安装python教程
初学者在学习Python时,经常看到的一个名字是Anaconda。究竟什么是Anaconda,为什么它如此受欢迎?在这篇文章中,我们将探讨Anaconda,了解Anaconda的从安装到使用的。Anaconda是一个免费开源的Python和R编程发行版,包含上千个适用于数据科学和机器学习的包。同时,配备了Spyder和Jupyternotebook等工具,初学者可以使用它们来学习Python,使用
- python 问题 ‘list‘ object cannot be interpreted as an integer 和‘int‘ object is not iterable
annekqiu
python
访问同一个excel表格(含有多个sheet)importnumpyasnpimportpandasaspdimportxlrd#读取excel的库importxlwt#写excel的库data=xlrd.open_workbook('./161005.xlsx')#打开excel文件读取数据table=data.sheets()[0]#读取sheet1h=table.ncols#获得列表数目a1
- 视频也能分割?!在云服务器上部署最新视觉大模型SAM2教程、详细代码注释和视频演示
Hanley_Yeung
图像处理人工智能python人工智能python深度学习SAM2计算机视觉图像分割
使用SAM2进行视频分割本笔记本展示了如何使用SAM2在视频中进行交互式分割。它将涵盖以下内容:在帧上添加点击以获取和细化masklets(时空掩码)在整个视频中传播点击以获取_masklets同时分割和跟踪多个目标我们使用术语_segment_或_mask_来指代单个帧上对象的模型预测,_masklet_指代整个视频中的时空掩码。如果使用Jupyter在本地运行,请首先根据安装说明在您的环境中安
- C++学习笔记----7、使用类与对象获得高性能(一)---- 书写类(2)
王俊山IT
c++学习笔记开发语言
2.2、定义成员函数前面对SpreadsheetCell类的定义足以让你生成类的对象。然而,如果想调用setValue()或者getValue()成员函数,连接器就会抱怨这些函数没有定义。这是因为到目前为止,这些成员函数只有原型,而还没有实现。通常,类的定义会在模块接口文件。对于成员函数的定义,你有一个选择:可以在模块定义文件或者在模块实现文件。下面是SpreadsheetCell类,在类内对成员
- 从零开始!Jupyter Notebook的安装教程
yunquantong
jupyteridepython
以下是从零开始安装JupyterNotebook的教程,适用于Windows、macOS和Linux系统。1.安装PythonJupyterNotebook需要Python环境。你可以从Python官方网站下载并安装Python。Windows用户:运行安装程序时,请确保勾选“AddPythontoPATH”选项。macOS用户:使用安装程序或通过Homebrew安装(brewinstallpyt
- 从零开始!Jupyter Notebook的安装教程
109702008
人工智能编程#pythonjupyter人工智能
GPT-4o(OpenAI)安装JupyterNotebook是一个相对简单的过程,特别是在大多数现代操作系统(如Windows、macOS和Linux)上。以下是详细的步骤指南,从安装Python开始,到JupyterNotebook的使用。步骤1:安装PythonJupyterNotebook需要Python环境。你可以从[Python官网](https://www.python.org/do
- 基于react native的锚点
miao_zz
Reactreact-nativereactnativeandroidreact.js
基于reactnative的锚点效果示例图示例代码效果示例图示例代码/*eslint-disablereact-native/no-inline-styles*/importReact,{useEffect,useRef,useState}from'react';import{Image,ImageBackground,ScrollView,StyleSheet,Text,TouchableOpa
- 深度学习工具:用Jupyter Notebook远程连接服务器
S.GJ
服务器jupyterpython
1.安装jupyter相关库(服务器端)pipinstalljupyterlabjupyter_contrib.nbextensions2.设置jupyter密码(服务器端)jupyter-notebookpassword3.开启jupyternotebook服务(服务器端)mkdirworkspacejupyter-notebook--no-browser--ip=0.0.0.0./worksp
- win10下Anaconda创建的环境中更新python版本后jupyter打不开问题
JimmyFun
环境配置
问题描述:解决方法:pipuninstalljupyterpipinstalljupyterpipinstall--force-reinstall--upgradepyzmq
- vba把excel导入mysql_VBA将Excel数据表格直接导入SQL Server数据库
weixin_39757040
[vb]代码库'把当前Excel工作簿的所有工作表的数据表格转换为Insert语句并导入SQLServer数据库中。OptionExplicitPublicSubCreateAllSheetsInsertScript()OnErrorGoToErrorHandler'recordsetandconnectionvariablesDimRowAsLongDimColAsInteger'Tostore
- 2018-08-11-信息理论 Information theory-C9T3P3
著屹隐莳
1、probe探针2、voyage旅行者3、spectacular壮观的、精彩的4、shun避开、回避5、prestigious著名的、有声望的6、feat成就、功绩、壮举7、crumple弄皱、变皱eg:crumpleafewsheetsintoballs将纸弄皱攒成球状8、cramadj.填鸭式学的vi.狼吞虎咽地吃东西;死记硬背功课vt.填满,塞满;死记硬背;猛吃eg:...tocramit
- Excel单元格内插入图片(VBA创建函数,根据图片名称批量插入,中间有空格)
yujiaerzong
ExcelExcelVBA单元格批量插入图片
1.详细步骤见Excel单元格内插入图片(VBA创建函数,根据图片名称批量插入)2.VBA代码部分改为如下代码Sub插入图形应用()ForEachshapInSheet1.ShapesIfshap.Type""Then DimiAsString i="" IfLen(Dir(ThisWorkbook.Path&"\图库\"&Cells
- 打卡第13天:《利用python进行数据分析》学习笔记
且不了了
第7章——数据规整化:清理、转换、合并、重塑数据变换http://nbviewer.jupyter.org/github/qiebuliaoliao/data_analysis_python/blob/master/ch7/20180405.ipynb
- easyexcel模板导出并且公式自动计算的方法
张毫洁
java前端服务器
ByteArrayOutputStreamoutputStream=newByteArrayOutputStream();EasyExcel.write(outputStream).withTemplate(filestream).sheet().doFill(templateMap);byte[]data=outputStream.toByteArray();ByteArrayInputStre
- python to_excel 生成多个sheet页
Excel自学成才
pythonexcel开发语言
python相关学习资料:https://edu.51cto.com/video/4102.htmlhttps://edu.51cto.com/video/3502.htmlhttps://edu.51cto.com/video/1158.htmlPythontoExcel生成多个Sheet页作为一名经验丰富的开发者,我很高兴能帮助你学习如何使用Python生成Excel文件并包含多个Sheet页
- jupyter出错ImportError: cannot import name ‘np_utils‘ from ‘keras.utils‘ ,怎么解决?
七月初七淮水竹亭~
人工智能pythonjupyterkeras深度学习
文章前言此篇文章主要是记录一下我遇到的问题以及我是如何解决的,希望下次遇到类似问题可以很快解决。此外,也希望能帮助到大家。遇到的问题出错:ImportError:cannotimportname'np_utils'from'keras.utils',如图:如何解决首先我根据网上文章的一些提示,将fromkeras.utilsimportnp_utils换成了fromtensorflow.keras
- CSS思维导图
weixin_45544617
html前端css
一、概念css——cascadingstylesheet(层叠样式表)作用:规定html元素如何在网页中显示特点:实现了结构与表现相分离(可维护性更高)二、css语法选择器{属性:属性值;}eg:h1{color:red;}三、样式表的创建1.行内样式(内联样式)eg:hello2.内部样式(嵌入式样式)eg:h1{color:red;}注:建议将style标签放在head部分3.外部样式表首先创
- ReactNative 常用开源组件
2401_84875852
程序员reactnative开源react.js
WebStormReactNative的代码模板插件,包括:1.组件名称2.Api名称3.所有StyleSheets属性4.组件属性https://github.com/virtoolswebplayer/ReactNative-LiveTemplateReact-native调用cordova插件https://github.com/axemclion/react-native-cordova-
- Jupyter notebook安装的问题
大梦一场三十一
使用anaconda去安装会比较简单,而后在anaconda打开Jupyternotebookimage.png遇到的问题:(1)在anaconda打开Jupyternotebook,无法出现在浏览器上,http://localhost:8888/tree,无法使用。可以尝试使用http://127.0.0.1:8888/tree。原因是hosts中没有定义127.0.0.1为localhost,
- 最适合python程序员用的笔记本-作为一个Python程序员,电脑上应该具备哪些软件?...
weixin_37988176
python开发的工具有很多,例如cscode,ipython,pycharm,jupyter等。如果你用的是linux系统,我建议你直接使用vim来写代码,特点是简单便捷,如果你觉得python里面的有些函数用法你记不住,那你可以下载一个vim的代码补全插件,我经常用的插件是spf13,它不仅可以做到各种编程语言(包含但不限于python语言)的代码补全操作,同时还原生支持vim的语法,总而言之
- AN7536PT时钟电路
LeeYLong
时钟电路晶振选型
目录1时钟电路概述2时钟晶振电路2.1需求分析2.2晶振选型(Datasheet表5-7解读)2.3设计晶振电路(表4-1、图5-4)1时钟电路概述时钟电路是一种用于产生稳定、周期性脉冲信号的电子电路。它通常由晶体振荡器和相关逻辑电路组成。晶体振荡器负责产生高精度的振荡信号,而逻辑电路则负责对振荡信号进行分频、缓冲和分配,以满足不同部件的时序要求。时钟信号可以看作是系统中的心跳,指示了系统的工作节
- linux查看jupyter运行,在Linux服务器上运行Jupyter notebook server教程
天启大烁哥
在Linux服务器上运行Jupyternotebookserver教程很多deeplearning教程都推荐在jupyternotebook运行python代码,方便及时交互。但只在本地运行没有GPU环境,虽然googlecolab是个好办法,但发现保存模型后在云端找不到模型文件,且需要合理上网才能访问。于是想给实验室的服务器配置jupyternotebook,供本机远程访问。踩了不少坑,码一下教
- Python安装NumPy
0阿齐兹0
阿齐兹的PyCV学习笔记pythonnumpy
打开cmd通过python和pip安装:C:\"ProgramFiles"\Python36\python.exe-mpipinstall--usernumpyscipymatplotlibipythonjupyterpandassympynose参考资料:https://www.scipy.org/install.html
- Python股票数据爬虫
nujiah001
技术总结stockpython
最近再看python的爬虫,刚好有人问到能不能把所有的股票数据爬下来.看一些其他人的实现方式,可能一些网站进行了优化,竟然没有找到能完全直接用的,但得到了很好的思路.简单记录一下,方便以后自己使用.准备工作.安装anaconda.使用jupyter.安装BeautifulSoup,requests包实现步骤:1.得到股票列表defis_stock(href_para): ifhref_parai
- xlrd-1.2.0 解决版本问题
大葱一根
小白学python小白学爬虫python开发语言后端
xlrd-1.2.0解决版本问题安装xlrd_compdoc_commented一样解决这个问题代码示例:importxlrd_compdoc_commentedworkbook=xlrd_compdoc_commented.open_workbook("成绩表.xlsx")#获取所有的sheet名字print(workbook.sheet_names())结果:
- Enum 枚举
120153216
enum枚举
原文地址:http://www.cnblogs.com/Kavlez/p/4268601.html Enumeration
于Java 1.5增加的enum type...enum type是由一组固定的常量组成的类型,比如四个季节、扑克花色。在出现enum type之前,通常用一组int常量表示枚举类型。比如这样:
public static final int APPLE_FUJI = 0
- Java8简明教程
bijian1013
javajdk1.8
Java 8已于2014年3月18日正式发布了,新版本带来了诸多改进,包括Lambda表达式、Streams、日期时间API等等。本文就带你领略Java 8的全新特性。
一.允许在接口中有默认方法实现
Java 8 允许我们使用default关键字,为接口声明添
- Oracle表维护 快速备份删除数据
cuisuqiang
oracle索引快速备份删除
我知道oracle表分区,不过那是数据库设计阶段的事情,目前是远水解不了近渴。
当前的数据库表,要求保留一个月数据,且表存在大量录入更新,不存在程序删除。
为了解决频繁查询和更新的瓶颈,我在oracle内根据需要创建了索引。但是随着数据量的增加,一个半月数据就要超千万,此时就算有索引,对高并发的查询和更新来说,让然有所拖累。
为了解决这个问题,我一般一个月会进行一次数据库维护,主要工作就是备
- java多态内存分析
麦田的设计者
java内存分析多态原理接口和抽象类
“ 时针如果可以回头,熟悉那张脸,重温嬉戏这乐园,墙壁的松脱涂鸦已经褪色才明白存在的价值归于记忆。街角小店尚存在吗?这大时代会不会牵挂,过去现在花开怎么会等待。
但有种意外不管痛不痛都有伤害,光阴远远离开,那笑声徘徊与脑海。但这一秒可笑不再可爱,当天心
- Xshell实现Windows上传文件到Linux主机
被触发
windows
经常有这样的需求,我们在Windows下载的软件包,如何上传到远程Linux主机上?还有如何从Linux主机下载软件包到Windows下;之前我的做法现在看来好笨好繁琐,不过也达到了目的,笨人有本方法嘛;
我是怎么操作的:
1、打开一台本地Linux虚拟机,使用mount 挂载Windows的共享文件夹到Linux上,然后拷贝数据到Linux虚拟机里面;(经常第一步都不顺利,无法挂载Windo
- 类的加载ClassLoader
肆无忌惮_
ClassLoader
类加载器ClassLoader是用来将java的类加载到虚拟机中,类加载器负责读取class字节文件到内存中,并将它转为Class的对象(类对象),通过此实例的 newInstance()方法就可以创建出该类的一个对象。
其中重要的方法为findClass(String name)。
如何写一个自己的类加载器呢?
首先写一个便于测试的类Student
- html5写的玫瑰花
知了ing
html5
<html>
<head>
<title>I Love You!</title>
<meta charset="utf-8" />
</head>
<body>
<canvas id="c"></canvas>
- google的ConcurrentLinkedHashmap源代码解析
矮蛋蛋
LRU
原文地址:
http://janeky.iteye.com/blog/1534352
简述
ConcurrentLinkedHashMap 是google团队提供的一个容器。它有什么用呢?其实它本身是对
ConcurrentHashMap的封装,可以用来实现一个基于LRU策略的缓存。详细介绍可以参见
http://code.google.com/p/concurrentlinke
- webservice获取访问服务的ip地址
alleni123
webservice
1. 首先注入javax.xml.ws.WebServiceContext,
@Resource
private WebServiceContext context;
2. 在方法中获取交换请求的对象。
javax.xml.ws.handler.MessageContext mc=context.getMessageContext();
com.sun.net.http
- 菜鸟的java基础提升之道——————>是否值得拥有
百合不是茶
1,c++,java是面向对象编程的语言,将万事万物都看成是对象;java做一件事情关注的是人物,java是c++继承过来的,java没有直接更改地址的权限但是可以通过引用来传值操作地址,java也没有c++中繁琐的操作,java以其优越的可移植型,平台的安全型,高效性赢得了广泛的认同,全世界越来越多的人去学习java,我也是其中的一员
java组成:
- 通过修改Linux服务自动启动指定应用程序
bijian1013
linux
Linux中修改系统服务的命令是chkconfig (check config),命令的详细解释如下: chkconfig
功能说明:检查,设置系统的各种服务。
语 法:chkconfig [ -- add][ -- del][ -- list][系统服务] 或 chkconfig [ -- level <</SPAN>
- spring拦截器的一个简单实例
bijian1013
javaspring拦截器Interceptor
Purview接口
package aop;
public interface Purview {
void checkLogin();
}
Purview接口的实现类PurviesImpl.java
package aop;
public class PurviewImpl implements Purview {
public void check
- [Velocity二]自定义Velocity指令
bit1129
velocity
什么是Velocity指令
在Velocity中,#set,#if, #foreach, #elseif, #parse等,以#开头的称之为指令,Velocity内置的这些指令可以用来做赋值,条件判断,循环控制等脚本语言必备的逻辑控制等语句,Velocity的指令是可扩展的,即用户可以根据实际的需要自定义Velocity指令
自定义指令(Directive)的一般步骤
&nbs
- 【Hive十】Programming Hive学习笔记
bit1129
programming
第二章 Getting Started
1.Hive最大的局限性是什么?一是不支持行级别的增删改(insert, delete, update)二是查询性能非常差(基于Hadoop MapReduce),不适合延迟小的交互式任务三是不支持事务2. Hive MetaStore是干什么的?Hive persists table schemas and other system metadata.
- nginx有选择性进行限制
ronin47
nginx 动静 限制
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=5r/s;...
server {...
location ~.*\.(gif|png|css|js|icon)$ {
- java-4.-在二元树中找出和为某一值的所有路径 .
bylijinnan
java
/*
* 0.use a TwoWayLinkedList to store the path.when the node can't be path,you should/can delete it.
* 1.curSum==exceptedSum:if the lastNode is TreeNode,printPath();delete the node otherwise
- Netty学习笔记
bylijinnan
javanetty
本文是阅读以下两篇文章时:
http://seeallhearall.blogspot.com/2012/05/netty-tutorial-part-1-introduction-to.html
http://seeallhearall.blogspot.com/2012/06/netty-tutorial-part-15-on-channel.html
我的一些笔记
===
- js获取项目路径
cngolon
js
//js获取项目根路径,如: http://localhost:8083/uimcardprj
function getRootPath(){
//获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp
var curWwwPath=window.document.locati
- oracle 的性能优化
cuishikuan
oracleSQL Server
在网上搜索了一些Oracle性能优化的文章,为了更加深层次的巩固[边写边记],也为了可以随时查看,所以发表这篇文章。
1.ORACLE采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他WHERE条件之前,那些可以过滤掉最大数量记录的条件必须写在WHERE子句的末尾。(这点本人曾经做过实例验证过,的确如此哦!
- Shell变量和数组使用详解
daizj
linuxshell变量数组
Shell 变量
定义变量时,变量名不加美元符号($,PHP语言中变量需要),如:
your_name="w3cschool.cc"
注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
首个字符必须为字母(a-z,A-Z)。
中间不能有空格,可以使用下划线(_)。
不能使用标点符号。
不能使用ba
- 编程中的一些概念,KISS、DRY、MVC、OOP、REST
dcj3sjt126com
REST
KISS、DRY、MVC、OOP、REST (1)KISS是指Keep It Simple,Stupid(摘自wikipedia),指设计时要坚持简约原则,避免不必要的复杂化。 (2)DRY是指Don't Repeat Yourself(摘自wikipedia),特指在程序设计以及计算中避免重复代码,因为这样会降低灵活性、简洁性,并且可能导致代码之间的矛盾。 (3)OOP 即Object-Orie
- [Android]设置Activity为全屏显示的两种方法
dcj3sjt126com
Activity
1. 方法1:AndroidManifest.xml 里,Activity的 android:theme 指定为" @android:style/Theme.NoTitleBar.Fullscreen" 示例: <application
- solrcloud 部署方式比较
eksliang
solrCloud
solrcloud 的部署其实有两种方式可选,那么我们在实践开发中应该怎样选择呢? 第一种:当启动solr服务器时,内嵌的启动一个Zookeeper服务器,然后将这些内嵌的Zookeeper服务器组成一个集群。 第二种:将Zookeeper服务器独立的配置一个集群,然后将solr交给Zookeeper进行管理
谈谈第一种:每启动一个solr服务器就内嵌的启动一个Zoo
- Java synchronized关键字详解
gqdy365
synchronized
转载自:http://www.cnblogs.com/mengdd/archive/2013/02/16/2913806.html
多线程的同步机制对资源进行加锁,使得在同一个时间,只有一个线程可以进行操作,同步用以解决多个线程同时访问时可能出现的问题。
同步机制可以使用synchronized关键字实现。
当synchronized关键字修饰一个方法的时候,该方法叫做同步方法。
当s
- js实现登录时记住用户名
hw1287789687
记住我记住密码cookie记住用户名记住账号
在页面中如何获取cookie值呢?
如果是JSP的话,可以通过servlet的对象request 获取cookie,可以
参考:http://hw1287789687.iteye.com/blog/2050040
如果要求登录页面是html呢?html页面中如何获取cookie呢?
直接上代码了
页面:loginInput.html
代码:
<!DOCTYPE html PUB
- 开发者必备的 Chrome 扩展
justjavac
chrome
Firebug:不用多介绍了吧https://chrome.google.com/webstore/detail/bmagokdooijbeehmkpknfglimnifench
ChromeSnifferPlus:Chrome 探测器,可以探测正在使用的开源软件或者 js 类库https://chrome.google.com/webstore/detail/chrome-sniffer-pl
- 算法机试题
李亚飞
java算法机试题
在面试机试时,遇到一个算法题,当时没能写出来,最后是同学帮忙解决的。
这道题大致意思是:输入一个数,比如4,。这时会输出:
&n
- 正确配置Linux系统ulimit值
字符串
ulimit
在Linux下面部 署应用的时候,有时候会遇上Socket/File: Can’t open so many files的问题;这个值也会影响服务器的最大并发数,其实Linux是有文件句柄限制的,而且Linux默认不是很高,一般都是1024,生产服务器用 其实很容易就达到这个数量。下面说的是,如何通过正解配置来改正这个系统默认值。因为这个问题是我配置Nginx+php5时遇到了,所以我将这篇归纳进
- hibernate调用返回游标的存储过程
Supanccy2013
javaDAOoracleHibernatejdbc
注:原创作品,转载请注明出处。
上篇博文介绍的是hibernate调用返回单值的存储过程,本片博文说的是hibernate调用返回游标的存储过程。
此此扁博文的存储过程的功能相当于是jdbc调用select 的作用。
1,创建oracle中的包,并在该包中创建的游标类型。
---创建oracle的程
- Spring 4.2新特性-更简单的Application Event
wiselyman
application
1.1 Application Event
Spring 4.1的写法请参考10点睛Spring4.1-Application Event
请对比10点睛Spring4.1-Application Event
使用一个@EventListener取代了实现ApplicationListener接口,使耦合度降低;
1.2 示例
包依赖
<p