- CSV指南:Python程序获取大型CSV文件行数
孤独打铁匠Julian
笔记经验分享python
本指南提供了几种使用Python来获取大型CSV文件行数的方法,并解释了每种方法的适用场景。方法1:使用csv.reader处理复杂CSV文件当你的CSV文件中包含多行字段(即某些字段的值中包含换行符)时,使用csv.reader是一个可靠的选择,因为它能够正确处理这些复杂情况。这个方法适用于大多数大小的CSV文件,但是对于非常大的文件,读取整个文件可能会占用较多的时间和内存。对于极大的文件,考虑
- 【Linux】PyCharm无法启动报错及解决方法
不是AI
python软件操作Linuxlinuxpycharm运维
一、问题描述如图,笔者试图在Ubuntu18.04虚拟机上运行PyCharm开发工具(已安装,安装过程可以参考我的博客Ubuntu安装PyCharm),无法启动,报错:CannotconnecttoalreadyrunningIDEinstance.Exception:Process2574isstillrunning.报错截图如下:二、解决方法通过报错信息看出,出于某种原因,进程(PID为257
- 英语精读笔记.新概念第三册(5)The facts确切数字
英文研习社
文章原文:Editorsofnewspapersandmagazinesoftengotoextremestoprovidetheirreaderswithunimportantfactsandstatistics.Lastyearajournalisthadbeeninstructedbyawell-knownmagazinetowriteanarticleonthepresident'spal
- @刘志超|007-8154|A组2018/11/8
点心灯张权
@刘志超|007-8154|A组 https://www.jianshu.com/p/4a67f514695c?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-timeline&from=groupmessage看了战友的文章,感觉到战友是真心的喜欢这个房子。1.文章写到了位置,楼层,卧室,餐
- kotlin 程序 编译与执行
workingwei
kotlinkotlin开发语言
准备kotlin环境Ubuntu安装kotlin1.创建一个名为hello.kt文件,代码如下:funmain(args:Array){println("Hello,World!")}2.使用Kotlin编译器编译应用kotlinchello.kt-include-runtime-dhello.jar-d:用来设置编译输出的名称,可以是class或.jar文件,也可以是目录。-include-ru
- android读取sd卡上文件中的数据
yayayaiii
android读取文件中数据读取数据读取文件
从sd卡上的文件中读取数据第1种方法:publicstaticStringreadFileMsg(StringfilePath){if(TextUtils.isEmpty(filePath)){return"";}BufferedReaderreader=null;try{Filefile=newFile(filePath);if(!file.exists()){return"";}reader=
- SpringBoot使用log4j2将日志记录到文件及自定义数据库
你小子在看什么……
Springbootspringbootlog4jjava
目录一、环境说明二、进行配置1、pom.xml2、log4j2.xml3、CustomDataSourceProperties4、ConfigReader5、ConnectionFactory连接工厂类,用于管理数据库连接三、进行简单测试配置1、LogUtils2、LoginUserInfoHelper3、LoginLogUtils4、写日志一、环境说明SpringBoot2+MyBatis-Pl
- LeetCode -- 76. 最小覆盖子串
Little.M_
LeetCodeleetcodejava算法
1.问题描述给你一个字符串s、一个字符串t。返回s中涵盖t所有字符的最小子串。如果s中不存在涵盖t所有字符的子串,则返回空字符串“”。注意:对于t中重复字符,我们寻找的子字符串中该字符数量必须不少于t中该字符数量。如果s中存在这样的子串,我们保证它是唯一的答案。示例1:输入:s=“ADOBECODEBANC”,t=“ABC”输出:“BANC”解释:最小覆盖子串“BANC”包含来自字符串t的‘A’、
- 【Java】读取手机文件名称
LI耳
Java日记java智能手机开发语言
首先,确保你已经连接了你的手机并已启用USB调试模式。然后,你需要使用AndroidDebugBridge(ADB)工具来获取手机文件列表。以下是一个简单的Java代码片段,使用ProcessBuilder调用ADB命令来获取文件列表:importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamRe
- 备战蓝桥之思维
爱莉我老婆
备战蓝桥java开发语言Java算法搜索
平台重叠真的坑给你一句样例,如果你觉得自己的代码没问题那就试试吧2113104正确答案0000P1105平台-洛谷|计算机科学教育新生态(luogu.com.cn)importjava.awt.Checkbox;importjava.awt.PageAttributes.OriginType;importjava.io.BufferedReader;importjava.io.IOExceptio
- C#--StreamWriter和StreamReader对象及常用函数
海绵波波107
C#c#数据库服务器
目录StreamReaderReadLine()Split()StreamWriterWriteLine()Flush()Close()StreamReaderStreamReader是C#中用于从流(如文件、内存流等)中读取文本数据的类。它提供了多种方法来读取不同类型的数据。以下是一些StreamReader类的常用方法:StreamReader(Stream):构造函数,创建一个新的Strea
- Python 进行把图片转换为pdf
西京刀客
Pythonpythonpdf前端
文章目录Python进行把图片转换为pdfPDF文件格式什么是PyMuPDF使用demoPython进行把图片转换为pdfPDF文件格式可移植文档格式(PDF)属于最常用的数据格式。在1990年,PDF文档的结构由Adobe定义。PDF格式的思想是,对于通信过程中涉及的双方(创建者,作者或发送者以及接收者)而言,传输的数据/文档看起来完全相同。什么是PyMuPDF使用到第三方库PyMuPDF,ht
- AE、PR视频压缩导出mp4、mov格式插件:AfterCodecs1.6.1汉化破解版
zhishijike
软件ae压缩视频大小ae插件pr压缩视频大小视频剪辑软件
AE、PR视频压缩导出插件AfterCodecs,优点是导出的视频小而快,而且保持优质的清晰度。插件支持CC2015以上版本(CC2015-CC2019)1.6.1版本更新后能够支持5.1声道环绕音等高品质音频输出,而且还支持视频导出的时候可以直接调用LUTS滤镜效果,给视频添加滤镜效果输出。修正H264低分辨率项目文件(pro/aep格式)重新导入到Adobe软件的色彩偏移。可以以环绕音WYZX
- Java——ikanalyzer分词·只用自定义词库
weixin_30902251
java数据库c/c++
需要包:IKAnalyzer2012_FF_hf1.jarlucene-core-5.5.4.jar需要文件:IKAnalyzer.cfg.xmlext.dicstopword.dic整理好的下载地址:http://download.csdn.net/detail/talkwah/9770635importjava.io.IOException;importjava.io.StringReader
- vue如何解析后台传回的文件流
我还能再卷一点
vue.js前端javascript
一、配置axios的响应类型请求拦截器中增加代码,判断如何调用的接口是文件下载接口将响应类型设置成blobconfig.responseType='blob'二、将获取回来的文件流转换成base64blobToBase64(blob){returnnewPromise((resolve,reject)=>constfileReader=newFileReader();fileReader.onlo
- vue | ubuntu安装vue
m0_57195758
分享vue.jsubuntu前端
nvm由于node.js的版本一直处于不断更新中,所以我们需要一个版本管理器来更好的使用node.js。nvm是一个开源的node版本管理器,通过它,你可以下载任意版本的node.js,还可以在不同版本之间切换使用。注意:安装nvm之前,要确保当前机子中不存在任何版本的node,如果有,则卸载掉。github:GitHub-nvm-sh/nvm:NodeVersionManager-POSIX-c
- 【CCC】数字车钥匙配对
BigY
CCC学习
文章目录介绍配对流程6.1配对Overview6.2会话6.3Phase6.3.1Phase0Preparation6.3.1.1DevicePreparation6.3.1.2VehicleProvisioning6.3.2Phase1:InitiatePairingProcedure6.3.3Phase2:FirstSessionwithNFCReader6.3.3.1Step1:Digita
- Adobe 最近搞大动作,推出了一个新玩意——一个用于音乐创作的人工智能工具
新加坡内哥谈技术
adobe人工智能
每周跟踪AI热点新闻动向和震撼发展想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领域的领跑者。点击订阅,与未来同行!订阅:https://rengongzhineng.io/今天在布鲁克林的热门播客峰会上,Adobe大展拳脚,推出了他们的新宠——ProjectM
- Ubuntu安装SVN服务并结合内网穿透实现公网访问本地存储文件
.小智
小智带你闲聊ubuntusvnlinux
最近,我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念,而且内容风趣幽默。我觉得它对大家可能会有所帮助,所以我在此分享。点击这里跳转到网站。文章目录前言1.Ubuntu安装SVN服务2.修改配置文件2.1修改svnserve.conf文件2.2修改passwd文件2.3修改authz文件3.启动svn服务4.内网穿透4.1安装cpolar内网穿透4.2创建隧道映射本地端口5
- pr2024 Premiere Pro 2024 mac v24.2.1中文激活版
macw_q
程序人生
PremierePro2024forMac是Adobe公司推出的一款强大的视频编辑软件,专为Mac操作系统优化。它提供了丰富的剪辑工具、特效和音频处理选项,帮助用户轻松创建专业级的影视作品。软件下载:pr2024PremierePro2024macv24.2.1中文激活版无论是剪辑短片、制作广告还是处理长篇电影,PremierePro2024都能提供出色的性能和稳定性。其简洁直观的界面和强大的功能
- 2023年9月8日点评
我是小清清呀
@张咲|15826|兰州|3号文章标题:《地球最后的夜晚,是长夜里梦到延续》文章链接:https://www.jianshu.com/p/fb90352b8528?utm_campaign=hugo&utm_medium=reader_share&utm_content=note&utm_source=weixin-friends文章作者:咲咲点评人:小清清点评时间:2023年9月8日点评内容:你
- InputStreamReader和BufferedReader的区别
浪白条
.InputStream、OutputStream处理字节流的抽象类InputStream是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等.OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等.2.InputStreamReaderOutputStreamWriter处理字符流的抽象类InputStrea
- ubuntu安装anaconda后出现“conda: command not found”
wzg2016
ubuntucondalinux
1.使用conda命令时出现“conda:commandnotfound”原因:~/.bashrc文件没有配置好解决方案:vim~/.bashrc在最后一行加上exportPATH=$PATH:/home/wzg/anaconda3/bin把上面的“/home/wzg/anaconda3/bin”换成自己的anaconda的安装目录即可。然后保存更改,运行source~/.bashrc参考:htt
- linux下搭建boost、muduo、mysql、nginx
孜孜不倦fly
后端开发c++
参考博客:1.boost:C++网络编程-Boost::asio异步网络编程-01-boost库源码编译安装2.muduo:C++muduo网络库知识分享01-Linux平台下muduo网络库源码编译安装3.mysql:sudoapt-getinstallmysql-serversudoapt-getinstallmysql-clientUbuntu安装和使用MySQLERROR1698(2800
- 2023-03-24
传承民间中医
口服维生素D补充剂可降低黑色素瘤风险研究人员无法确定明确的相关性。Pixel-Shot/AdobeStock最近发表在《黑色素瘤研究》上的一项研究发现,经常服用口服维生素D补充剂的人患黑色素瘤的病例比不服用者少。1该研究包括498名在芬兰一家皮肤科诊所就诊的有患任何类型皮肤癌风险的人。医学肿瘤学家兼加利福尼亚州圣莫尼卡普罗维登斯圣约翰健康中心圣约翰癌症研究所黑色素瘤项目医学主任KimMargoli
- 有用的 RSS 订阅
dkvirus
一、什么是RSS很多博客都会提供RSS订阅功能,这个功能刚开始没能理解怎么玩。RSS订阅图1点击之后出现下图,就是一个xml文件,这也叫订阅??RSS订阅图2直到在这哥们werner的博客里读了一篇文章什么是RSS订阅才算弄明白.......我使用的RSS在线阅读器是inoreader,百度搜一下,注册下账号就能用。将最常逛得博客(前提是支持RSS订阅功能)添加进去,当别人家的博客有更新时阅读器会
- 2024年有哪些软件可以剪辑视频
仙剑魔尊重楼
热门软件视频剪辑会声会影视频视频剪辑会声会影
视频剪辑软件有很多种类,比如爱剪辑、会声会影、EDIUS、adobepremiere等。前三种属于较简单的剪辑视频,后两种属于较专业的视频。1、爱剪辑:爱剪辑的特点在于容易上手,对于一些简单的视频加工都是能满足的,但是同时它也有一个缺点那就是用爱剪辑剪出来的视频,片头都会有爱剪辑的标识。2、会声会影:会声会影对于初学者来说真的是一款超级好的软件,基本功能齐全,满足刚开始做mv的各种需求,不过正版是
- 会声会影2023电脑破解版视频剪辑工具
FLflStudio
会声会影2024音视频办公软件其他
本次更新不仅带来了标题动作、标题特效、转场特效、音频标记等功能的更新,也增强了热门的GIF创作器、定格动画制作、多语字幕、短时长转场等功能,让大家能体验到更加新潮的视频制作方式。会声会影2023是一款视频编辑软件,由Corel开发。该软件提供了多种视频编辑和特效功能,使用户能够轻松地编辑和制作高质量的视频。在本文中,我们将介绍会声会影的功能和适用人群,并比较它与AdobePremierePro这样
- blob 和 base64 相互转换
最凶残的小海豹
web前端前端
一、blob转base641.方法//blob转base64functionblobToDataURI(blob,callback){varreader=newFileReader();reader.readAsDataURL(blob);reader.onload=function(e){callback(e.target.result);};}2.使用方法//blob格式转换为base64格式
- 【Go语言最佳实践】通过消除错误来消除错误处理
GOLANG ROADMAP
golang服务器
你知道有什么比改进错误处理的语法更好吗?那就是根本不需要处理错误。注意:我不是说“删除你的错误处理”。我的建议是,修改你的代码,这样就不用处理错误了。本节从JohnOusterhout最近的著作“软件设计哲学”[9]中汲取灵感。该书的其中一章是“定义不存在的错误”。我们将尝试将此建议应用于Go语言。计算行数让我们编写一个函数来计算文件中的行数。funcCountLines(rio.Reader)(
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持