- VGG16滤镜可视化和类激活图
LIjin_1006
人工智能神经网络深度学习cnn
这个用keras2.2.4+tensorflow1.15.0importkeraskeras.__version__fromkeras.applicationsimportVGG16fromkerasimportbackendasKimportnumpyasnpfromkerasimportmodelsimportmatplotlib.pyplotaspltimporttensorflowastf
- DCGAN中的生成器和识别器代码详解
YYLin-AI
DCGAN深度学习celebatensorflow
#DCGAN中的生成器我自己写的有一个封装好的用于生成器和识别器的卷积操作但是在这个代码中我没有使用我自己的代码#原因想绍一下tensorflow自带的函数所以找了一个以前在书上的代码申明一下这个不是原创但是原来代码中有几处不符合DCGAN的要求所以就做了一些修改转载链接没有就直接写成原创建议看代码之前先看看DCGAN的特点,然后再看代码中如何实这些特点的这样会更有帮助DCGAN(深度卷积的对抗生
- 今年一半以上新增财富来自AI;微软任命Windows和Surface新负责人;GitHub推出代码自动修复工具 | 极客头条
极客日报
人工智能microsoftgithub
「极客头条」——技术人员的新闻圈!CSDN的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧。整理|苏宓出品|CSDN(ID:CSDNnews)一分钟速览新闻点!字节提速AI:Flow部门下设四大业务线,挖角大批百度阿里员工小米汽车App上线苹果AppStore:可在线购车、远程车控原海思总裁徐文伟官宣退休:1991年加入华为阿里1688全面接入淘宝:将设立专门频道
- 如果可以重新开始,我将如何学习编码(ft. ChatGPT),这是我在 2023 年学习编码的方式
iCloudEnd
2023年是学习编码的好年头。为什么?那么,现在您不需要浪费时间在Google上搜索编码答案,也不需要等待数天才能在StackOverflow上找到您的问题的答案。现在,您可以全天候24小时向ChatGPT询问任何编码问题并快速获得答案。这个AI工具肯定会加快你的学习速度,但你还应该知道其他一些事情,以便在你的编码之旅中走上正确的轨道。
- DIV + CSS 布局:盒子内容超出宽度时,不换行,以滚动条形式水平滑动
01空间
常见场景解决方案csshtml
滚动条水平滚动展示溢出内容htmlcss(less)思路html11112222333344445555666677778888css(less).outer{background-color:#39a9ed;overflow-x:auto;&::-webkit-scrollbar{display:none;}white-space:nowrap;.item{display:inline-bloc
- Android 实现照片抠出人像。
No Promises﹉
android
谢谢阅览、关注!!一、各平台的实现方式:1.Android实现方式:使用图像处理库(如OpenCV):集成OpenCV库,利用其图像处理功能进行边缘检测和图像分割;使用机器学习模型(如TensorFlowLite):集成TensorFlowLite和预训练的人像分割模型;使用第三方API服务:利用如百度AI、腾讯AI等提供的在线API进行图像处理。步骤:集成必要的库或API、加载和处理图像、应用抠
- 每日OJ题_字符串①_力扣14. 最长公共前缀
GR鲸鱼
leetcode算法c++数据结构
目录力扣14.最长公共前缀解析代码1(两两比较)解析代码2(统一比较)力扣14.最长公共前缀14.最长公共前缀难度简单编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串""。示例1:输入:strs=["flower","flow","flight"]输出:"fl"示例2:输入:strs=["dog","racecar","car"]输出:""解释:输入不存在公共前缀。提
- angular html 文字向上无缝滚动
陌归
样式要重新自己写body{font-size:12px}#demo{overflow:hidden;height:80px;width:280px;margin:90pxauto;position:relative;}#demo1{height:auto;text-align:left;}#demo2{height:auto;text-align:left;}#demo1li,#demo2li{l
- Arduino使用TinyML实现水果识别
亚图跨际
物联网编程Arduinotensorflowarduinotinyml
在本文中,板载手势传感器将用于收集对象识别数据,这些数据将用于创建TensorFlowLite模型,该模型可用于识别特定对象。电路板的接近传感器功能将用于识别物体何时靠近电路板,而RGB传感器用于首先收集物体的颜色数据,然后正确识别物体。这是一个简单的示例,但确实显示了在小型设备上运行TinyML的潜力以及传感器丰富的Arduino蓝牙传感器的强大功能。硬件水果ArduinoIDE准备安装库文件捕
- 机器学习常用框架
碧落&凡尘
机器学习人工智能
机器学习是人工智能的一个重要分支,它通过让计算机系统利用数据自我学习来改进任务执行的能力。在机器学习领域,有许多成熟的框架被广泛使用,这些框架提供了构建和训练机器学习模型的工具。以下是一些常用的机器学习框架:TensorFlow:由Google开发,是一个开源的软件库,用于数据流编程,广泛应用于各类机器学习任务。它支持分布式计算,能够在大规模数据集上训练复杂的模型。PyTorch:由Faceboo
- TensorFlow的介绍和简单案例
科学的N次方
人工智能tensorflow人工智能python
TensorFlow是一个开源的机器学习框架,由Google开发和维护。它旨在使构建和训练机器学习模型变得更加容易,同时提供高度灵活性和可扩展性。TensorFlow基于数据流图的概念。数据流图是一个由节点和边组成的有向图,其中节点表示操作,边表示数据的流动。TensorFlow通过在数据流图中定义操作和变量来表示机器学习模型,并使用图的计算能力进行训练和推理。TensorFlow支持多种机器学习
- 2019-03-28作业
您的名称已被使用
html:zuoye1css:.he{width:45px;height:33px;overflow:hidden;position:relative;margin:50pxauto;}.heimg{/*display:inline-block;*/position:absolute;top:-335px;left:-10px;}.heimg:hover{left:-59px;}.heimg:ac
- 实现两栏布局
ZoeLandia
前端csshtml前端
1.利用浮动将左边元素宽度设为200px,并设置向左浮动将右边元素的margin-left设为200px,宽度为auto(默认为auto,撑满整个父元素).outer{height:100px;}.left{float:left;width:200px;}.right{margin-left:200px;width:auto;}leftright2.浮动+overflow左边元素固定大小,并左浮动
- SpringBoot实现 PDF 添加水印
A尘埃
springbootpdf后端水印
方案一:使用ApachePDFBox库①、依赖org.apache.pdfboxpdfbox2.0.24②、添加水印publicclassPdfoxWatermark{publicstaticvoidmain(String[]args)throwsIOException{//读取原始PDF文件PDDocumentdocument=PDDocument.load(newFile("original.
- spring activiti ACT_RE_MODEL
hshpy
spring数据库sql
InSpring,ifyou'rereferringto"activiti"inthecontextofworkfloworbusinessprocessmanagement,it'slikelyyou'reusingtheActivitiBPMN(BusinessProcessModelandNotation)engine.InActiviti,ACT_RE_MODELisoneofthetab
- linux Shell 命令行-02-var 变量
老马啸西风
java
拓展阅读linuxShell命令行-00-intro入门介绍linuxShell命令行-02-var变量linuxShell命令行-03-array数组linuxShell命令行-04-operator操作符linuxShell命令行-05-test验证是否符合条件linuxShell命令行-06-flowcontrol流程控制linuxShell命令行-07-func函数linuxShell命令
- HTML5+CSS3小实例:3D分层图像悬停效果
艾恩小灰灰
实例:3D分层图像悬停效果技术栈:HTML+CSS效果:源码:【html】3D分层图像悬停效果【css】*{/*初始化*/margin:0;padding:0;}body{/*100%窗口高度*/height:100vh;/*弹性布局居中*/display:flex;justify-content:center;align-items:center;overflow:hidden;/*渐变背景*/
- TypeError: parse() got an unexpected keyword argument 'transport_encoding'
凌川江雪
有点尴尬,自安装了ANACONDA和TensorFlow之后,首次在ANACONDAPrompt中用pip命令安装第三方库,然而一大片刺眼的红字就扑面而来,在ANACONDAPrompt中没法用pip命令安装第三方库了?搞了一会儿,没得搞定,最后在CSDN上找到一个简单粗暴而效果拔群的办法:直接在ANACONDAPrompt中安装pip,解决问题!即:condainstallpip
- 阿里云分布式深度学习训练架构Whale
qwfys200
Reading阿里云分布式深度学习
阿里云分布式深度学习训练架构Whale阿里云分布式深度学习训练架构Whale参考文献Whale基于Tensorflow深度学习分布式训练框架|学习笔记Whale:EfficientGiantModelTrainingoverHeterogeneousGPUs阿里云机器学习平台PAI论文高效大模型训练框架Whale入选USENIXATC’22
- 计算机设计大赛 酒店评价的情感倾向分析
iuerfee
python
前言优质竞赛项目系列,今天要分享的是酒店评价的情感倾向分析该项目较为新颖,适合作为竞赛课题方向,学长非常推荐!更多资料,项目分享:https://gitee.com/dancheng-senior/postgraduate概述本文基于7K条携程酒店评价数据为文本数据,将其导入到Keras的模型架构然后进行训练出一个可用于实际场所预测情感的模型。项目所需模块importtensorflowastfi
- beam search原理与常见实现,与直接sample的区别
samoyan
LLM面试transformer面试
目录BeamSearch原理1.基本概念2.工作流程3.特点BeamSearch与直接Sample的区别1.确定性与随机性2.结果多样性3.性能与效率4.应用场景常见的BeamSearch实现1.TensorFlow库2.PyTorch库3.HuggingFace的Transformers库算法库和工具BeamSearch原理1.基本概念BeamSearch是一种启发式图搜索算法,常用于自然语言处
- css基础4
心理师
css基础4CSS高级技巧元素的显示与隐藏在CSS中有三个显示和隐藏的单词比较常见,我们要区分开,他们分别是displayvisibility和overflow。他们的主要目的是让一个元素在页面中消失,但是不在文档源码中删除。最常见的是网站广告,当我们点击类似关闭不见了,但是我们重新刷新页面,它们又会出现和你玩躲猫猫!!display显示display设置或检索对象是否及如何显示。display:
- mac 下 h2o-3 构建
godvan
[TOC]准备工作1、构建环境准备:JDK>=1.7NodejsGradlePythonR.npmPip安装请百度或google构建需要了解Gradle。使用自h2o-flow时需要了解释前端nodejs打包。jdk环境是必须的。需要配置jdk环境变量。2、并通过python软件管理包,安装以下软件Python安装brewinstallpythonpip安装:https://www.runoob.
- 父元素flex:1,子元素宽度100%失效的问题
一个巨蟹座的前端
vuejsvue.js前端javascriptcsshtml
今天做项目时遇见一个问题,父元素在设置flex:1来固定宽度撑满时,子元素设置width100%无效。经过尝试发现给父元素及设置flex:1的元素加上width:0可解决。即这样写:.parent{flex:1;width:0;.children{width:100%;overflow-x:scroll;}}但同时遇到了另一个问题,我发现这样设置后,即使width超过之后,横向滚动条依然不出现,经
- Flowable DataObject的使用(flowable自定义流程标题)
骑驴追地瓜
1.DataObject可以做什么在流程定义的时候可以设置数据对象,数据对象的名称会成为流程变量的key,flowable还提供了一个扩展属性value来为数据对象赋值。也就是说在流程定义阶段我们就可以在全局定义一些流程变量(官网解释)。一个比较简单的使用场景就是自定义流程标题,下面我们将以自定义流程标题为例子,讲解DataObject的使用方式。定义方法如下图:图1:image.png图2:im
- 2018-04-02 tensorflow Classification
DIO哒
使用tensorflow进行分类任务这个就还是和之前的回归用的一样的建立一个层的函数定义了权重,偏差以及计算方法defadd_layer(inputs,in_size,out_size,activation_function=None,):#addonemorelayerandreturntheoutputofthislayerWeights=tf.Variable(tf.random_norma
- flurl post请求上传文件
假装我不帅
dotnetc#dotnetflurl
https://stackoverflow.com/questions/41042591/how-can-i-upload-a-file-and-form-data-using-flurlhttps://github.com/tmenier/Flurl/issues/113varresp=await"http://api.com".PostMultipartAsync(mp=>mp.AddStri
- 【桥水研报】2022年全球展望:MP3政策的成功及不良后果
fry3251
原文地址:https://www.bridgewater.com/research-and-insights/our-2022-global-outlook-the-success-and-excesses-resulting-from-mp3-policiesMP3政策,也就是美联储自疫情以来的一系列宽松的货币与财政政策,已经生效了,把经济从大崩溃中拉了出来,并产生了提振以及持续的增长。经济产出
- 泽平 的ScalersTalk第七轮新概念朗读持续力训练Day 464 20220629
郑泽平
练习材料:Lesson11-2HowtogrowoldAnindividualhumanexistenceshouldbelikeariver--smallatfirst,narrowlycontainedwithinitsbanks,andrushingpassionatelypastbouldersandoverwaterfalls.Graduallytherivergrowswider,th
- 在docker中运行 pip 报错 Can‘t start new thread
少年的小俊
dockerpip容器
原因源头stackoverflowhisisbecausethedefaultseccompprofileofDocker20.10.9isnotadjustedtosupporttheclone()syscallwrapperofglibc2.34adoptedinUbuntu21.10andFedora35.由于docker版本与最新版python容器冲突导致解决方案以下三种方式都可以解决升级
- 关于旗正规则引擎中的MD5加密问题
何必如此
jspMD5规则加密
一般情况下,为了防止个人隐私的泄露,我们都会对用户登录密码进行加密,使数据库相应字段保存的是加密后的字符串,而非原始密码。
在旗正规则引擎中,通过外部调用,可以实现MD5的加密,具体步骤如下:
1.在对象库中选择外部调用,选择“com.flagleader.util.MD5”,在子选项中选择“com.flagleader.util.MD5.getMD5ofStr({arg1})”;
2.在规
- 【Spark101】Scala Promise/Future在Spark中的应用
bit1129
Promise
Promise和Future是Scala用于异步调用并实现结果汇集的并发原语,Scala的Future同JUC里面的Future接口含义相同,Promise理解起来就有些绕。等有时间了再仔细的研究下Promise和Future的语义以及应用场景,具体参见Scala在线文档:http://docs.scala-lang.org/sips/completed/futures-promises.html
- spark sql 访问hive数据的配置详解
daizj
spark sqlhivethriftserver
spark sql 能够通过thriftserver 访问hive数据,默认spark编译的版本是不支持访问hive,因为hive依赖比较多,因此打的包中不包含hive和thriftserver,因此需要自己下载源码进行编译,将hive,thriftserver打包进去才能够访问,详细配置步骤如下:
1、下载源码
2、下载Maven,并配置
此配置简单,就略过
- HTTP 协议通信
周凡杨
javahttpclienthttp通信
一:简介
HTTPCLIENT,通过JAVA基于HTTP协议进行点与点间的通信!
二: 代码举例
测试类:
import java
- java unix时间戳转换
g21121
java
把java时间戳转换成unix时间戳:
Timestamp appointTime=Timestamp.valueOf(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()))
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:m
- web报表工具FineReport常用函数的用法总结(报表函数)
老A不折腾
web报表finereport总结
说明:本次总结中,凡是以tableName或viewName作为参数因子的。函数在调用的时候均按照先从私有数据源中查找,然后再从公有数据源中查找的顺序。
CLASS
CLASS(object):返回object对象的所属的类。
CNMONEY
CNMONEY(number,unit)返回人民币大写。
number:需要转换的数值型的数。
unit:单位,
- java jni调用c++ 代码 报错
墙头上一根草
javaC++jni
#
# A fatal error has been detected by the Java Runtime Environment:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x00000000777c3290, pid=5632, tid=6656
#
# JRE version: Java(TM) SE Ru
- Spring中事件处理de小技巧
aijuans
springSpring 教程Spring 实例Spring 入门Spring3
Spring 中提供一些Aware相关de接口,BeanFactoryAware、 ApplicationContextAware、ResourceLoaderAware、ServletContextAware等等,其中最常用到de匙ApplicationContextAware.实现ApplicationContextAwaredeBean,在Bean被初始后,将会被注入 Applicati
- linux shell ls脚本样例
annan211
linuxlinux ls源码linux 源码
#! /bin/sh -
#查找输入文件的路径
#在查找路径下寻找一个或多个原始文件或文件模式
# 查找路径由特定的环境变量所定义
#标准输出所产生的结果 通常是查找路径下找到的每个文件的第一个实体的完整路径
# 或是filename :not found 的标准错误输出。
#如果文件没有找到 则退出码为0
#否则 即为找不到的文件个数
#语法 pathfind [--
- List,Set,Map遍历方式 (收集的资源,值得看一下)
百合不是茶
listsetMap遍历方式
List特点:元素有放入顺序,元素可重复
Map特点:元素按键值对存储,无放入顺序
Set特点:元素无放入顺序,元素不可重复(注意:元素虽然无放入顺序,但是元素在set中的位置是有该元素的HashCode决定的,其位置其实是固定的)
List接口有三个实现类:LinkedList,ArrayList,Vector
LinkedList:底层基于链表实现,链表内存是散乱的,每一个元素存储本身
- 解决SimpleDateFormat的线程不安全问题的方法
bijian1013
javathread线程安全
在Java项目中,我们通常会自己写一个DateUtil类,处理日期和字符串的转换,如下所示:
public class DateUtil01 {
private SimpleDateFormat dateformat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public void format(Date d
- http请求测试实例(采用fastjson解析)
bijian1013
http测试
在实际开发中,我们经常会去做http请求的开发,下面则是如何请求的单元测试小实例,仅供参考。
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.httpclient.HttpClient;
import
- 【RPC框架Hessian三】Hessian 异常处理
bit1129
hessian
RPC异常处理概述
RPC异常处理指是,当客户端调用远端的服务,如果服务执行过程中发生异常,这个异常能否序列到客户端?
如果服务在执行过程中可能发生异常,那么在服务接口的声明中,就该声明该接口可能抛出的异常。
在Hessian中,服务器端发生异常,可以将异常信息从服务器端序列化到客户端,因为Exception本身是实现了Serializable的
- 【日志分析】日志分析工具
bit1129
日志分析
1. 网站日志实时分析工具 GoAccess
http://www.vpsee.com/2014/02/a-real-time-web-log-analyzer-goaccess/
2. 通过日志监控并收集 Java 应用程序性能数据(Perf4J)
http://www.ibm.com/developerworks/cn/java/j-lo-logforperf/
3.log.io
和
- nginx优化加强战斗力及遇到的坑解决
ronin47
nginx 优化
先说遇到个坑,第一个是负载问题,这个问题与架构有关,由于我设计架构多了两层,结果导致会话负载只转向一个。解决这样的问题思路有两个:一是改变负载策略,二是更改架构设计。
由于采用动静分离部署,而nginx又设计了静态,结果客户端去读nginx静态,访问量上来,页面加载很慢。解决:二者留其一。最好是保留apache服务器。
来以下优化:
- java-50-输入两棵二叉树A和B,判断树B是不是A的子结构
bylijinnan
java
思路来自:
http://zhedahht.blog.163.com/blog/static/25411174201011445550396/
import ljn.help.*;
public class HasSubtree {
/**Q50.
* 输入两棵二叉树A和B,判断树B是不是A的子结构。
例如,下图中的两棵树A和B,由于A中有一部分子树的结构和B是一
- mongoDB 备份与恢复
开窍的石头
mongDB备份与恢复
Mongodb导出与导入
1: 导入/导出可以操作的是本地的mongodb服务器,也可以是远程的.
所以,都有如下通用选项:
-h host 主机
--port port 端口
-u username 用户名
-p passwd 密码
2: mongoexport 导出json格式的文件
- [网络与通讯]椭圆轨道计算的一些问题
comsci
网络
如果按照中国古代农历的历法,现在应该是某个季节的开始,但是由于农历历法是3000年前的天文观测数据,如果按照现在的天文学记录来进行修正的话,这个季节已经过去一段时间了。。。。。
也就是说,还要再等3000年。才有机会了,太阳系的行星的椭圆轨道受到外来天体的干扰,轨道次序发生了变
- 软件专利如何申请
cuiyadll
软件专利申请
软件技术可以申请软件著作权以保护软件源代码,也可以申请发明专利以保护软件流程中的步骤执行方式。专利保护的是软件解决问题的思想,而软件著作权保护的是软件代码(即软件思想的表达形式)。例如,离线传送文件,那发明专利保护是如何实现离线传送文件。基于相同的软件思想,但实现离线传送的程序代码有千千万万种,每种代码都可以享有各自的软件著作权。申请一个软件发明专利的代理费大概需要5000-8000申请发明专利可
- Android学习笔记
darrenzhu
android
1.启动一个AVD
2.命令行运行adb shell可连接到AVD,这也就是命令行客户端
3.如何启动一个程序
am start -n package name/.activityName
am start -n com.example.helloworld/.MainActivity
启动Android设置工具的命令如下所示:
# am start -
- apache虚拟机配置,本地多域名访问本地网站
dcj3sjt126com
apache
现在假定你有两个目录,一个存在于 /htdocs/a,另一个存在于 /htdocs/b 。
现在你想要在本地测试的时候访问 www.freeman.com 对应的目录是 /xampp/htdocs/freeman ,访问 www.duchengjiu.com 对应的目录是 /htdocs/duchengjiu。
1、首先修改C盘WINDOWS\system32\drivers\etc目录下的
- yii2 restful web服务[速率限制]
dcj3sjt126com
PHPyii2
速率限制
为防止滥用,你应该考虑增加速率限制到您的API。 例如,您可以限制每个用户的API的使用是在10分钟内最多100次的API调用。 如果一个用户同一个时间段内太多的请求被接收, 将返回响应状态代码 429 (这意味着过多的请求)。
要启用速率限制, [[yii\web\User::identityClass|user identity class]] 应该实现 [[yii\filter
- Hadoop2.5.2安装——单机模式
eksliang
hadoophadoop单机部署
转载请出自出处:http://eksliang.iteye.com/blog/2185414 一、概述
Hadoop有三种模式 单机模式、伪分布模式和完全分布模式,这里先简单介绍单机模式 ,默认情况下,Hadoop被配置成一个非分布式模式,独立运行JAVA进程,适合开始做调试工作。
二、下载地址
Hadoop 网址http:
- LoadMoreListView+SwipeRefreshLayout(分页下拉)基本结构
gundumw100
android
一切为了快速迭代
import java.util.ArrayList;
import org.json.JSONObject;
import android.animation.ObjectAnimator;
import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayo
- 三道简单的前端HTML/CSS题目
ini
htmlWeb前端css题目
使用CSS为多个网页进行相同风格的布局和外观设置时,为了方便对这些网页进行修改,最好使用( )。http://hovertree.com/shortanswer/bjae/7bd72acca3206862.htm
在HTML中加入<table style=”color:red; font-size:10pt”>,此为( )。http://hovertree.com/s
- overrided方法编译错误
kane_xie
override
问题描述:
在实现类中的某一或某几个Override方法发生编译错误如下:
Name clash: The method put(String) of type XXXServiceImpl has the same erasure as put(String) of type XXXService but does not override it
当去掉@Over
- Java中使用代理IP获取网址内容(防IP被封,做数据爬虫)
mcj8089
免费代理IP代理IP数据爬虫JAVA设置代理IP爬虫封IP
推荐两个代理IP网站:
1. 全网代理IP:http://proxy.goubanjia.com/
2. 敲代码免费IP:http://ip.qiaodm.com/
Java语言有两种方式使用代理IP访问网址并获取内容,
方式一,设置System系统属性
// 设置代理IP
System.getProper
- Nodejs Express 报错之 listen EADDRINUSE
qiaolevip
每天进步一点点学习永无止境nodejs纵观千象
当你启动 nodejs服务报错:
>node app
Express server listening on port 80
events.js:85
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at exports._errnoException (
- C++中三种new的用法
_荆棘鸟_
C++new
转载自:http://news.ccidnet.com/art/32855/20100713/2114025_1.html
作者: mt
其一是new operator,也叫new表达式;其二是operator new,也叫new操作符。这两个英文名称起的也太绝了,很容易搞混,那就记中文名称吧。new表达式比较常见,也最常用,例如:
string* ps = new string("
- Ruby深入研究笔记1
wudixiaotie
Ruby
module是可以定义private方法的
module MTest
def aaa
puts "aaa"
private_method
end
private
def private_method
puts "this is private_method"
end
end