- python学习记录14
彤银浦
学习python
1.字符串的编码和解码不同的计算机之间在信道中传输的信息本质上是二进制数据,因此当你有一串文本需要传输给另外一台电脑时,则需要将这串文本编译为二进制类型的数据。python中的二进制数据类型称为byte类型。将字符串的str类型转变为byte类型称为字符串的编码,将byte类型转变为str类型称为字符串的解码。字符串的编码用到的是encode的方法,语法格式为:string.encode(enco
- Python学习打卡:day13
胜天半子祁厅
Pythonpython学习java
day13笔记来源于:黑马程序员python教程,8天python从入门到精通,学python看这套就够了目录day1397、初识对象98、类的成员方法类的定义和使用成员变量和成员方法成员方法的定义语法99、类和对象在程序中通过类来描述基于类创建对象100、构造方法课后练习101、魔术方法\_\_str\_\_字符串方法\_\_lt\_\_小于符号比较方法\_\_le\_\_小于等于比较符号方法\
- python学习笔记(深度学习)
天水幼麟
python学习笔记
文章目录1、概述2、学习内容2.1、pytorch常见语法2.1.1、sum2.1.2、广播机制2.1.3、张量1、概述本篇博客用来记录,在深度学习过程中,常用的python语法内容2、学习内容2.1、pytorch常见语法2.1.1、sum在PyTorch中,torch.sum()是一个非常常用的函数,用于对张量(Tensor)进行求和操作。它的核心作用是沿着指定的维度对张量元素进行累加,支持灵
- Python学习之——装饰器
selfsongs
Python学习记录python学习开发语言
Python学习之——装饰器参考基础闭包概念装饰器系统自带的装饰器@property@staticmethod@classmethod自定义装饰器函数的装饰器无参数有参数类的装饰器无参数有参数@functools.wraps装饰器类装饰器实现单例模式参考python装饰器的4种类型:函数装饰函数、函数装饰类、类装饰函数、类装饰类9.4定义一个带参数的装饰器Python–在装饰器中获取原始函数参数基
- Python学习Day42
m0_64472246
python打卡学习python
学习来源:@浙大疏锦行defhandle_result(result):"""处理计算结果的回调函数"""print(f"计算结果是:{result}")defcalculate(a,b,callback):"""这个函数接受两个数值和一个回调函数,用于处理计算结果。执行计算并调用回调函数"""result=a+bcallback(result)calculate(3,5,handle_resul
- Python学习Day33
m0_64472246
python打卡学习python
学习来源:浙大疏锦行一、PyTorch和CUDA的安装:给电脑装“超级计算器”通俗解释PyTorch:是一个专门用于深度学习的“工具箱”,类似程序员的“智能积木”,能快速搭建神经网络。CUDA:是NVIDIA显卡的“加速引擎”,相当于给电脑的显卡装了一个“超级计算器”,让它能快速计算复杂的数学问题(如图像识别、数据训练)。安装逻辑:先装CUDA(显卡的“计算器驱动”),再装PyTorch(用这个计
- Python学习Day29
m0_64472246
python打卡学习学习
学习来源:@浙大疏锦行类装饰器是Python中用于动态修改或增强类定义的高级工具,其核心在于接收一个类作为输入并返回一个新类,从而在不修改原始类代码的前提下扩展功能。以下是类装饰器的系统解析:一、类装饰器的核心机制基本结构类装饰器是一个高阶函数,接收类参数cls,通过继承或直接修改返回新类:defclass_decorator(cls):classWrappedClass(cls):#继承原始类d
- Python学习Day10
m0_64472246
python打卡学习python
学习来源:@浙大疏锦行知识点:数据集的划分机器学习模型建模的三行代码机器学习模型分类问题的评估对心脏病数据集采用机器学习模型建模和评估importpandasaspdfile_path="heart.csv"data=pd.read_csv(file_path)data.info()data.isnull().sum()#划分训练集和测试机fromsklearn.model_selectionim
- Python学习Day14
m0_64472246
python学习开发语言
学习来源:@浙大疏锦行SHAP(SHapleyAdditiveexPlanations)库是一个用于解释机器学习模型预测结果的开源Python库。**一、核心概念**1.**Shapley值***它来源于合作博弈论。在机器学习模型解释的语境下,可以这样理解:对于一个模型的预测结果,每个特征都看作是一个“玩家”,模型的输出是这些“玩家”合作的结果。Shapley值表示每个特征对预测结果的平均边际贡献
- Python学习Day34
m0_64472246
python打卡学习python
学习来源:@浙大疏锦行优化耗时:importtorchimporttorch.nnasnnimporttorch.optimasoptimfromsklearn.datasetsimportload_irisfromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportMinMaxScalerimpo
- Python学习—10大高阶调试方法!
第⑦颗VC小铁树
python学习数据库开发语言数据分析ipython
在Python开发过程中,调试是一项核心技能。无论是初级开发者还是资深工程师,掌握高效的调试技巧都能显著提升开发效率。本文将介绍10个实用的调试方法,帮助开发者更有效地定位和解决问题。包含编程资料、学习路线图、源代码、软件安装包等!【[点击这里]】!1、Python内置调试器pdb的应用Python的内置调试器pdb是一个功能强大的调试工具。它能够在程序执行过程中设置断点,检查变量状态,并支持单步
- Python学习Day40
m0_64472246
python打卡学习python
学习来源:@浙大疏锦行importtorchimporttorch.nnasnnimporttorch.optimasoptimfromtorchvisionimportdatasets,transformsfromtorch.utils.dataimportDataLoaderimportmatplotlib.pyplotaspltimportnumpyasnp##设置中文字体支持plt.rcP
- python25-递归算法
文人sec
python自动化算法python
课程:B站大学记录python学习,直到学会基本的爬虫,使用python搭建接口自动化测试就算学会了,在进阶webui自动化,app自动化递归算法递归的基本原则递归的使用作业小tips:斐波那契数列阶乘快速排序实践是检验真理的唯一标准递归的基本原则递归函数通常遵循以下原则:定义基本情况确定一个或多个输入的特殊情况,当满足这些条件时,递归函数将直接返回结果而不再调用自身。减小问题规模通过调用自身来解
- 零基础入门Python:30天从小白到实战高手(附完整代码+项目案例)
全息架构师
Python实战项目大揭秘python开发语言
零基础入门Python:30天从小白到实战高手(附完整代码+项目案例)摘要:本文为技术小白量身打造Python学习路线,包含环境搭建、基础语法、核心库使用、实战项目开发全流程。每日学习计划+代码案例+避坑指南,助你快速掌握编程核心技能!关键词:Python入门、零基础编程、实战项目、学习路线、避坑指南一、为什么选择Python作为第一门编程语言?1.1Python的四大核心优势语法简洁:print
- python学习记录16
彤银浦
学习
字符串总结python程序使用unicode编码,中文字符与英文字符都占一个字符,但英文字符只占一个字节,中文字符若按照utf-8格式编码占3个字节。(1)字符串常用方法1)大小写转化string.upper()#将所有字母转换为大写string.lower()#将所有字母转换为小写2)字符串分割string.split(sep='')#将字符串按照sep进行分割3)字符串的检索string.co
- python学习记录5
彤银浦
学习python
1描述程序程序可以用三种方法来描述:自然语言、流程图、伪代码自然语言:主要使用后IPO描述,即描述输入,描述过程、描述输出。流程图:使用图形、文字、线条·描述程序伪代码:介于汇编语言和自然语言中间的一组描述代码的语言2程序结构程序分成三种结构:顺序结构、分支结构、循环结构。(1)顺序结构从上而下,一字不落地依次执行每条语句,例如输入输出语句a=3b,c=4,5str='你好'print(a,b,c
- python学习记录12
彤银浦
学习开发语言python
序列总结(1)序列序列是一种内部元素为带有编号的值空间向量,这些编号叫做索引,例如一条字符串就是一个序列。一切对象皆有布尔值,序列的布尔值为:非空序列布尔值为True,空序列布尔值为False。因为序列是带有索引的多维变量,有正向递增索引[0,N-1],反向递减索引[-1,N]因此可以根据索引进行输出单个元素或子向量的切片操作,以及使用len()函数计算有限序列的长度。除了上述操作外,还有以下基本
- 【python学习】基础篇-常用模块:StringIO在内存中读写字符串
寒山独见君~
【Python学习-基础篇】python学习开发语言
StringIO是Python中的一个模块,用于在内存中读写字符串。它提供了类似于文件对象的接口,可以方便地对字符串进行操作,而不需要实际创建文件。通过使用StringIO,我们可以在内存中对字符串进行操作,而不需要创建实际的文件。这在处理大量数据时非常有用,因为它可以避免磁盘I/O的开销。以下是StringIO的一些常用用法:#1导入StringIO模块:fromioimportStringIO
- python学习-13【网络编程】
kuiini
pythonpython学习网络
1、Socket网络模块Socket模块在Python中,使用socket模块的socket()函数来创建一个socket对象:socket.socket(family,type,proto)family:套接字家族,该参数指定调用者期待返回的套接字接口地址结构的类型AF_UNIX:同一台机器上的进程通信AF_INET:使用IPv4通信,不会返回IPv6的信息AF_INET6:使用IPv6通信,不
- 【python学习/大模型开发】使用 json-repair 轻松修复大模型生成的损坏 JSON:结构化数据解析利器
NLP仙人
pythonpython学习json自然语言处理人工智能
目标读者:本文适合Python开发者,尤其是需要处理不完整或格式错误JSON数据的程序员。无论你是处理第三方API返回的数据,还是解析日志文件时遇到不完整的JSON格式,这篇文章都将帮助你快速找到解决方案。文章概要:我们将深入介绍如何使用Python的json-repair库修复损坏的JSON数据。通过具体的代码示例和详细讲解,你将掌握如何修复常见的JSON错误、避免易错点,以及如何有效地集成这个
- Python应用八股文
Mikhail_G
运维大数据开发语言数据分析python
大家好!在Python学习的道路上,掌握一些基础知识要点至关重要,这些要点常被称为“Python八股”。以下是对它们的简易总结,帮助你快速回顾和巩固Python的核心概念。一、数据结构列表(List):有序可变序列,可包含不同类型的元素,如`my_list=[1,'apple',3.14]`。元组(Tuple):有序不可变序列,与列表类似但不可修改,如`my_tuple=(1,'banana',2
- python中分别输入a和b_Python学习之输入输出入门 A+B篇
张锦云
python中分别输入a和b
描述求两个整数之和。输入输入数据只包括两个整数A和B。输出两个整数的和。样例输入12样例输出3a=input().split()print(int(a[0])+int(a[1]))这个输入还有其他方法都可以,但python的split()函数具有切片功能,可以直接返回分割后的字符串列表list,再赋值给新的变量,用起来比较顺手,split()的函数原型:str.split(str="",num=s
- Python学习——ipython的使用
YungJZ
Python
?Ipython的概述和简介help(name)查询指定名称的帮助obj?列出obj对象的详细信息obj??列出更加详细的信息_表示前一次输出一个下划线__表示倒数第二次输出两个下划线___表示倒数第三次输出三个ipython专有的,注意_dh目录历史_oh输出历史shell命令!command执行shell命令!ls-l!touchtest.txtfiles=!ls-l|greppy
- 0基础学Python系列【12】Python中的csv库:从基础到进阶,全面解析
花小姐的春天
0基础学Pythonpython开发语言
大家好,欢迎来到Python学习的第二站!Python自带了一些超好用的模块,可以让你不必从头写代码就能实现很多功能。比如数学计算、文件操作、网络通信等。花姐会挑选常用的一些模块来讲解,确保你能在实际项目中用到。本章要学什么?接下来花姐会深入浅出的讲解下面9个常用库:csv——今天讲这里ConfigParserloggingossmtplib/emailsubprocesssysthreading
- python学习
yaya_1q2w
reference:http://www.runoob.com/python/python-basic-syntax.html1.python基础语法(1)分为交互式编程与脚本式编程。forexampleprint(”HelloPython!”)oncmd为交互式编程将print(”HelloPython!”)写入test.py文件中,然后runpythontest.pyoncmd,这种叫脚本式编
- python求15 17 23 65 97的因数_Python学习记录15
weixin_39979215
python求1517236597的因数
#并发和并行#实现多任务的方式:1.多进程模式2.多线程模式3.协程进程>线程>协程#在linux下可以使用fork函数创建进程,#在windows下可以引用multiprocessing模块,创建进程。可以使用multiprocessing模块中的Process类创建新的进程Process类说明构造方法__init__()参数:name:进程名称args:任意位置参数kwargs:任意关键字参数
- Python学习笔记--Django路由
路由是根据用户请求的URL链接来找到对应的处理程序,并返回处理结果,也就是URL与Django的视图建立映射关系。Django路由在urls.py配置,urls.py中的每一条配置对应相应的处理方法。Django不同版本urls.py配置有点不一样:Django1.1.x版本url()方法:普通路径和正则路径均可使用,需要自己手动添加正则首位限制符号。Django2.2.x之后的版本path:用于
- Python学习笔记39:Python_property属性_with语句和上下文管理器
JasonYangQ
Pythonpython
文章目录property属性1.property属性的介绍2.装饰器方式3.类属性方式4.小结with语句和上下文管理器1.with语句的使用2.上下文管理器3.小结property属性学习目标能够知道装饰器方式的property属性的定义方式1.property属性的介绍property属性就是负责把一个方法当做属性进行使用,这样做可以简化代码使用。定义property属性有两种方式装饰器方式类
- Python学习笔记22:Python面向对象_基础_继承_进阶_面向对象版学员管理系统
JasonYangQ
Pythonpython
文章目录【目标】Python面向对象_基础一.理解面向对象二.类和对象2.1理解类和对象2.1.1类2.1.2对象2.2面向对象实现方法2.2.1定义类2.2.2创建对象2.2.3self三.添加和获取对象属性3.1类外面添加对象属性3.2类外面获取对象属性3.3类里面获取对象属性四.魔法方法4.1`__init__()`4.1.1体验`__init__()`4.1.2带参数的`__init__(
- 6个月Python学习计划 Day 17 - 继承、多态与魔术方法
蓝婷儿
pythonpython学习开发语言
第三周Day4今日目标理解类的继承和方法重写掌握多态思想及其实际应用了解并使用常见的魔术方法(如str、len等)类的继承(Inheritance)Python支持单继承与多继承,常用语法如下:class子类名(父类名):...✅示例:定义一个继承自Person的Student类classPerson:def__init__(self,name):self.name=namedefintroduc
- 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独立出来,数据持