- LeetCode 每日一题 2024/10/21-2024/10/27
alphaTao
Exerciseleetcode算法
记录了初步解题思路以及本地实现代码;并不一定为最优也希望大家能一起探讨一起进步目录10/21910.最小差值II10/223184.构成整天的下标对数目I10/233185.构成整天的下标对数目II10/243175.找到连续赢K场比赛的第一位玩家10/253180.执行操作可获得的最大总奖励I10/263181.执行操作可获得的最大总奖励II10/27684.冗余连接10/21910.最小差值I
- 【Python 语法】Python 神经网络项目常用语法
一杯水果茶!
人生苦短我用Pythonpython
基础1.导入模块和包2.修改系统路径(sys.path.append)3.命令行参数解析(argparse模块)4.assert确保正确性5.main()脚本入口点6.辅助函数生成器函数`cycle(dl)`一、常用函数1.`.cuda()`/`.cpu()`和`torch.device`2.`torch.zeros`、`torch.randn`、`torch.arrange`、`torch.po
- python中的字典类型_Python中字典数据类型
石墨稀
python中的字典类型
一.创建字典方法①:>>>dict1={}>>>dict2={'name':'earth','port':80}>>>dict1,dict2({},{'port':80,'name':'earth'})方法②:从Python2.2版本起>>>fdict=dict((['x',1],['y',2]))>>>fdict{'y':2,'x':1}方法③:从Python2.3版本起,可以用一个很方便的内建
- Python 中的列表(List)和元组(Tuple)
shangjg3
Pythonpython开发语言
1.定义与语法差异1.列表的定义列表使用方括号`[]`定义,元素之间用逗号分隔。列表的元素可以是不同数据类型,甚至嵌套其他列表或元组。my_list=[1,"hello",True,[2,3]]2.元组的定义元组使用圆括号`()`定义,同样支持混合数据类型。需要注意的是,定义单元素元组时必须在元素后加逗号,以区别于数学表达式中的括号。my_tuple=(1,"world",False,(4,5))
- Python 列表
列表是由一系列按特定顺序排列的元素组成。在python中用方括号([])来表示列表并用逗号来分隔其中的元素。例如:bicycles=['trek','cannondale','redline']。访问列表元素时,只需将该元素的索引值或位置告诉Python即可。(索引值由0开始)>>>names=['zhao','qian','sun','li']>>>print(names[0])zhao创建的大
- 列表 简单数据类型
天池小晨
python
整型浮点型布尔型容器数据类型列表元组字典集合字符串1.列表的定义列表是有序集合,没有固定大小,能够保存任意数量任意类型的Python对象,语法为[元素1,元素2,...,元素n]。关键点是「中括号[]」和「逗号,」中括号把所有元素绑在一起逗号将每个元素一一分开2.列表的创建创建一个普通列表【例子】1x=['Monday','Tuesday','Wednesday','Thursday','Frid
- Python-难点-获取项目根目录
1需求2接口3示例4参考资料在Python中,“设置根目录”通常指指定项目的基准路径,以便统一管理文件路径。以下是几种常见方法,结合不同场景和兼容性需求:一、基于路径拼接(最常用)通过手动拼接路径来定义根目录,适用于结构固定的项目。importos#方法1:根据当前文件位置向上递归定义(推荐)defset_project_root():current_file=os.path.abspath(__
- JSON和JSONL、python操作
weixin_668
jsonpython
JSONJSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,基于文本、易于读写,并支持多种数据结构。以下是常见的JSON格式及示例:1.简单对象(键值对){"name":"Alice","age":25,"isStudent":true}2.嵌套对象{"person":{"name":"Bob","address":{"city":"NewYork","zipc
- python 抓取小红书
小五咔咔咔
python开发语言
python相关学习资料:https://edu.51cto.com/video/3832.htmlhttps://edu.51cto.com/video/4102.htmlhttps://edu.51cto.com/video/1158.htmlPython抓取小红书数据的科普文章小红书是一个流行的社交电商平台,用户可以分享购物心得、生活点滴等。本文将介绍如何使用Python语言抓取小红书的数据
- 利用 Python 爬取小红书热门笔记并进行标签关键词分析
程序员威哥
最新爬虫实战项目python笔记开发语言
一、背景与目标小红书(RED)作为中国最活跃的内容社区之一,拥有大量关于美妆、穿搭、美食、旅游等领域的用户生成内容(UGC)。对于产品、品牌方或研究人员来说,提取热门笔记的标签关键词,可以有效捕捉用户关注点、消费趋势及内容热词。本项目目标:使用Python爬取小红书某个话题下的热门笔记;分析每篇笔记中的标题、正文、标签等字段;利用NLP技术提取高频关键词;对关键词进行可视化与聚类分析。二、技术难点
- leetcode-5. 最长回文子串(c++)
应技大学子
力扣—字符串pycharmpythonide
题目:给你一个字符串s,找到s中最长的回文子串。示例:输入:s="babad"输出:"bab"、"aba"同样是符合题意的答案。解法1:中心扩散法从每一个位置出发,向两边扩散即可。遇到不是回文的时候结束。例str=acdbbdaa我们需要寻找从第一个b。首先往左寻找与当期位置相同的字符,直到遇到不相等为止。然后往右寻找与当期位置相同的字符,直到遇到不相等为止。最后左右双向扩散,直到左和右不相等。如
- python JSON Lines (JSONL)的保存和读取;jsonl的数据保存和读取,大模型prompt文件保存常用格式
医学小达人
常用算法NLPpromptJSONLinesJSONLjsonljsonl文件保存读取
1.JSONLines(JSONL)文件保存将一个包含多个字典的列表保存为JSONLines(JSONL)格式的文件,每个字典对应一个JSONL文件中的一行。以下是如何实现这一操作的Python代码importjson#定义包含字典的列表data=[{"id":1,"name":"Alice","age":30,"email":"
[email protected]"},{"id":2,"name"
- 四十行Python代码,带你爬取热门音乐评论,制作评论词云图!
请求页面数据driver.get(‘https://music.163.com/#/song?id=569213220’)#selenium无法直接获取到嵌套页面里面的数据switch_to.frame()切换到嵌套网页driver.switch_to.frame(0)让浏览器加载的时候,等待渲染页面driver.implicitly_wait(10)driver.page_source获取请求页
- 【c++】leetcode5 最长回文子串
1.题目5.最长回文子串-力扣(LeetCode)2.codeclassSolution{public:stringlongestPalindrome(strings){stringres="";for(autoi=0U;ires.length()?s1:res;res=s2.length()>res.length()?s2:res;}returnres;}stringpalindrome(str
- Python 处理图像并生成 JSONL 元数据文件 - 固定text版本
Python处理图像并生成JSONL元数据文件-固定text版本flyfishJSONL(JSONLines)简介JSONL(JSONLines,也称为newline-delimitedJSON)是一种轻量级的数据序列化格式,由一系列独立的JSON对象组成,每行一个有效的JSON对象,行与行之间通过换行符(\n)分隔。JSONL是传统JSON的“轻量化”变体,通过“每行一个JSON对象”的设计,解
- jxORM--编程指南
jxandrew
jxWebUI数据库pythonjxWebUIjxORMORM
jxORM是jxWebUI配套的数据库操作库,可以简化python程序员操作数据库。声明数据类定义数据类之前,先导入ORM修饰符:fromjxORMimportORM,DBDataType,ColType然后就可以用ORM修饰符来修饰一个类,从而定义一个数据类:@ORMclassUser:ID:DBDataType.Long=ColType.PrimaryKeyCreateTime:DBDataT
- 深度学习系列----->环境搭建(Ubuntu)
二师兄用飘柔
深度学习历程深度学习ubuntu人工智能pytorchpython
1、前言电脑基础系统硬件情况:系统:ubuntu18.04、显卡:GTX1050Ti;后续的环境搭建都在此基础上进行。此次学习选择Pytorch作为深度学习的框架,选择的原因主要由于PyTorch在研究领域特别受欢迎,较多的论文框架也是基于其开发。2、anaconda+python3安装测试在学习深度学习的过程中会涉及到使用不同版本python包的问题,而anaconda可以便捷获取包且对包能够进
- Python中的enumerate()函数
冉成未来
Servicepython开发语言
文章目录基本用法参数说明特点实际应用与zip()的比较注意事项enumerate()是Python内置的一个非常有用的函数,它用于在遍历可迭代对象(如列表、元组、字符串等)时,同时获取元素的索引和值。基本用法fruits=['apple','banana','cherry']forindex,fruitinenumerate(fruits):print(index,fruit)输出:0apple1
- 空间曲线正交投影及其距离计算的理论与实践
老歌老听老掉牙
python正交投影
引言:正交投影的几何本质在三维空间中,正交投影是一种基础而重要的几何变换,它将空间中的点沿特定方向映射到一个平面上。当我们考虑将空间曲线投影到由给定法向量n\mathbf{n}n定义的平面时,这一问题在计算机图形学、CAD/CAM系统和科学计算中具有广泛应用。本文将从数学原理、Python实现到距离计算的等价性问题,全面探讨这一几何操作的深层内涵。设空间曲线由参数方程r(t)=(x(t),y(t)
- pip是如何卸载你安装的第三方库的
酷python
pythonpython
使用pipuninstall命令可以卸载掉你所安装的第三方库,所有与其相关的文件都将被pip整理出来展示并询问是否真的要删除,类似下面的提示pipuninstallnoxFoundexistinginstallation:nox2020.8.22Uninstallingnox-2020.8.22:Wouldremove:d:\python\lib\site-packages\nox-2020.8.
- 深度学习-常用环境配置
瑶山
AIlinux人工智能windowsCUDAPyTorch
目录Miniconda安装安装NVIDIA显卡驱动安装CUDA和cnDNNCUDAcuDNNPyTorch安装手动下载测试Miniconda安装最新版Miniconda搭建Python环境_miniconda创建python虚拟环境-CSDN博客安装NVIDIA显卡驱动直接进NVIDIA官网:NVIDIAGeForce驱动程序-N卡驱动|NVIDIA在这里有GeForce驱动程序,立即下载,这是下
- Nginx IP授权页面实现步骤
目标:一、创建白名单文件sudomkdir-p/usr/local/nginx/conf/whitelistsudotouch/usr/local/nginx/conf/whitelist/temporary.conf二、创建Python认证服务文件路径:/opt/script/auth_server.pyimportosimporttimefromflaskimportFlask,request
- 高阶知识库搭建实战五、(向量数据库Milvus安装)
伯牙碎琴
大模型数据库milvus大模型AI
以下是关于在Windows环境下直接搭建Milvus向量数据库的教程:本教程分两部分,第一部分是基于docker安装,在Windows环境下直接安装Milvus向量数据库,目前官方推荐的方式是通过Docker进行部署,因为Milvus的运行环境依赖于Linux系统。如果你希望在Windows上直接运行Milvus,可以考虑使用MilvusLite版本,这是一个轻量级的Python库,适用于快速原型
- python分布式事务_分布式事务系列(2.1)分布式事务的概念
#1系列目录#2X/OpenDTPDTP全称是DistributedTransactionProcess,即分布式事务模型。之前我们接触的事务都是针对单个数据库的操作,如果涉及多个数据库的操作,还想保证原子性,这就需要使用分布式事务了。而X/OpenDTP就是一种分布式事务处理模型。##2.1X/OpenDTP模型X/Open是一个组织,维基百科上这样说明:X/Open是1984年由多个公司联合创
- java学习day6 + leetcode31 下一个排列
冬夜戏雪
java学习算法
1.消息队列和一些功能P74P75P76基于stream的消息队列单消费模式消费者组P77基于消息队列的异步秒杀下单shift2提及,插入已知笔记P78探店笔记P79查看探店笔记p80点赞功能一人一赞这里也有并发P81点赞排行榜sortedsetset集合的选择redis里面的zsetmybatis改sql排序语句p82好友关注关注和取关p83共同关注redis里的set交集功能解析id集合没看懂
- java学习 leetcode31 下一个排列
冬夜戏雪
java学习leetcode
1.排列方法(按照全排列,数组,整数来回转换的思路)packagecom.hmdp.leetcode;importjava.util.*;publicclassbacktracking31{publicvoidnextPermutation(int[]nums){//1.将当前数组转为字符串表示StringBuildersb=newStringBuilder();for(intnum:nums){
- LLM初识
从零到一:用Python和LLM构建你的专属本地知识库问答机器人摘要:随着大型语言模型(LLM)的兴起,构建智能问答系统变得前所未有的简单。本文将详细介绍如何使用Python,结合开源的LLM和向量数据库技术,一步步搭建一个基于你本地文档的知识库问答机器人。你将学习到从环境准备、文档加载、文本切分、向量化、索引构建到最终实现问答交互的完整流程。本文包含详细的流程图描述、代码片段思路和关键注意事项,
- CCF-GESP 等级考试 2025年6月认证Python四级真题解析
1单选题(每题2分,共30分)第1题2025年4月19日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间,跑动着的机器人会利用身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的()。A.处理器B.存储器C.输入设备D.输出设备解析:答案:C。所有传感器都用于采集数据,属于输入设备,故选C。第2题小杨购置的计算机使用一年后觉得内存不够用了,想购置一个容量更
- 推荐开源项目:Milvus Lite —— 轻量级向量数据库,助力AI应用快速起飞
穆希静
推荐开源项目:MilvusLite——轻量级向量数据库,助力AI应用快速起飞项目介绍MilvusLite是知名开源向量数据库Milvus的轻量级版本,专为需要在小型环境中进行向量嵌入和相似性搜索的AI应用设计。通过将MilvusLite导入您的Python应用,您可以直接使用Milvus的核心向量搜索功能。MilvusLite已集成在PythonSDKofMilvus中,只需通过pipinstal
- 【数据结构】详解堆排序当中的topk问题(leetcode例题)
ylfxw
数据结构leetcode算法
文章目录前言如何理解topk问题代码逻辑代码实现前言Leetcode相关题目:215.数组中的第K个最大元素如何理解topk问题**TopK问题是一个经典的问题,在计算机科学中,它的目标是在一组数据中找到前K个最大或最小的元素。**这个问题在许多场景下都很重要,比如搜索引擎的搜索结果排名、数据分析中的热门元素筛选等。.在最简单的形式中,给定一个数组(或列表)和一个整数K,TopK问题要求返回数组中
- 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独立出来,数据持