- python-26-回调函数用法和基于python发送邮件
皮皮冰燃
python3python
文章目录1什么是回调函数?1.1回调函数1.2回调函数的来源2回调示例2.1示例一2.1.1even.py2.1.2callback_demo.py2.2示例二2.2.1普通函数调用2.2.2回调函数2.3中间函数的调用者3QQ邮箱3.1POP3用于收取邮件3.2IMAP用于收取邮件3.3SMTP用于发送邮件3.4python发送邮件4参考附录1什么是回调函数?1.1回调函数回调函数就是一个被作为
- es6数组的flat(),flatMap()函数用法实例分析
PrinciplesMan
#Es6es6javascript开发语言
数组的成员有时还是数组,Array.prototype.flat()用于将嵌套的数组“拉平”,变成一维数组。该方法返回一个新数组,对原数据没有影响。[1,2,[3,4]].flat()//[1,2,3,4]上面代码中,原数组的成员里面有一个数组,flat()方法将子数组的成员取出来,添加在原来的位置。flat()默认只会“拉平”一层,如果想要“拉平”多层的嵌套数组,可以将flat()方法的参数写成
- Bitmap.createBitmap函数用法
zzq1996
androidbitmapmatrixcreateBitmap位图
publicstaticBitmapcreateBitmap(Bitmapsrc)从原位图src复制出一个新的位图,和原始位图相同publicstaticBitmapcreateBitmap(int[]colors,intwidth,intheight,Bitmap.Configconfig)这个函数根据颜色数组来创建位图,注意:颜色数组的长度>=width*height此函数创建位图的过程可以简
- numpy库常用函数总结
一尾清风915
numpypython
总是记不住函数用法,在这儿整理一下。1.np.array():创建数组。importnumpyasnparr=np.array([1,2,3])#一维数组arr_2d=np.array([[1,2],[3,4]])#二维数组2.np.arange():生成等差数列arr=np.arange(0,10,2)#输出:[02468]3.np.linspace():生成均匀间隔的数值arr=np.aran
- python之函数用法setattr(),了解即可
weixin_33998125
python
#-*-coding:utf-8-*-#python27#xiaodeng#python之函数用法setattr(),了解即可#http://www.cnblogs.com/hongfei/p/3858256.html#setattr()#说明:给object对象添加新的name(属性)和value(属性值),通常在class中运用较多'''setattr(...)setattr(object,n
- Python setattr()、getattr()、hasattr()函数用法详解
在Python中,setattr(),getattr(),和hasattr()是内置函数,用于动态地访问和修改对象的属性。下面是对这三个函数的详细解释和用法示例。setattr()setattr()函数用于设置一个对象的属性值。其语法如下:setattr(object,name,value)object:要设置属性的对象。name:要设置的属性名(字符串形式)。value:属性的值。示例:clas
- python中pow函数用法_Python pandas.DataFrame.pow函数方法的使用
weixin_39988779
python中pow函数用法
DataFrame.pow(self,other,axis='columns',level=None,fill_value=None)[source]获取dataframe和其他逐元素的指数幂(二进制运算符pow)。与dataframe**other等效,但支持用fill_value替换输入之一中的丢失数据。对于反向版本,rpow。在灵活的包装器(add,sub,mul,div,mod,pow)中
- Python—回顾速查—数据类型函数用法
DartistCode
python列表集合字典元组
目录一、相关函数速查列表相关函数字符串函数集合函数字典操作二、简单代码实现三、json操作四、结语一、相关函数速查列表相关函数append列表.append(元素)向列表中追加一个元素extend列表.extend(容器)将数据容器的内容依次取出追加到列表尾部insert列表.insert(下标,元素)在指定下标处,插入指定的元素deldel列表[下标]删除列表指定下标元素pop列表.pop(下标
- loc和iloc函数用法详解(Python)
荔枝科研社
#编程中的疑难杂症python开发语言后端
目录1利用loc、iloc提取行数据2利用loc、iloc提取列数据3利用loc、iloc提取指定行、指定列数据4利用loc、iloc提取所有数据5利用loc函数,根据某个数据来提取数据所在的行6iloc的详细用法6.1得到属性名、第一行数据、数据类型6.2得到属性名、第二行数据、数据类型6.3得到全部数据6.4得到第二行开始的数据6.5得到第3-n行,第4-m列的数据(假设共有n行,m列)1利用
- snprintf函数用法及注意事项详解
什么半岛铁盒
linux算法运维
当format后没有可变参数(即...为空)时,va_start的行为和后续操作如下:1.va_start的行为va_start的核心任务是根据最后一个固定参数(format)的地址,计算可变参数列表的起始位置。即使没有可变参数,va_start仍会执行以下操作:定位参数边界:根据编译器的调用约定(如栈布局或寄存器使用),va_start会将va_list初始化到理论上的可变参数起始地址(即for
- java charat函数用法_Java String charAt()用法及代码示例
KabudoS
javacharat函数用法
JavaStringcharAt()方法返回指定索引处的字符。索引值应介于0到length()-1之间。签名:publiccharcharAt(intindex)参数:index-Indexofthecharactertobereturned.返回:returnscharacteratthespecifiedposition.异常:StringIndexOutOfBoundsException-I
- matlab stem函数坐标轴_MATLAB中stem函数用法
摸金校尉73
matlabstem函数坐标轴
stem(Y)将数据序列Y从x轴到数据值按照茎状形式画出,以圆圈终止.如果Y是一个矩阵,则将其每一列按照分隔方式画出.stem(X,Y)在X的指定点处画出数据序列Y.stem(...,'filled')以实心的方式画出茎秆.stem(...,'LINESPEC')按指定的线型画出茎秆及其标记…Matlab中max函数在矩阵中求函数大小的实例如下:(1)C=max(A)返回一个数组各不同维中的最大元
- C++ getline函数用法
weixin_33916256
c/c++
getline()函数是一个比较常见的函数。根据名字直接望文生义,就知道这个函数是来完成读入一行数据。下面就对C++--getline()函数的用法说明,以及getline()函数作为while条件的问题,总结一下:在C++中本质上有两种getline函数:第一种:在头文件中,是iostream类的成员函数。第二种:在头文件中,是普通函数。///第一种:在中的getline()函数有两种重载形式:
- Python 中 enumerate 函数用法全面解析:提升循环代码可读性与效率
侦探已死488
python开发语言enumerate函数学习笔记
引言在Python编程中,遍历序列元素并同时获取索引是常见需求。传统方案使用range(len())组合虽能实现,但代码冗长且易读性差。Python内置的enumerate()函数应运而生,为迭代操作提供了优雅的解决方案。本文将深入解析enumerate的核心用法与实战技巧,助您编写更Pythonic的循环代码。一、基础用法剖析1.1基本语法enumerate(iterable,start=0)i
- python的enumerate函数用法
图灵追慕者
pythonpython开发语言enumerate
enumerate是Python内置的一个函数,用于在遍历可迭代对象(如列表、元组、字符串等)时,同时获取元素的索引和值。它常用于for循环中,可以提高代码的可读性和可维护性。基本语法enumerate(iterable,start=0)iterable:一个可迭代对象,比如列表、元组、字符串等。start(可选):索引起始值,默认为0。返回值enumerate返回一个枚举对象,可以通过list(
- Python中的itertools模块常见函数用法示例
asdfg1258963
数据结构知识python开发语言
itertools,迭代工具模块,提供了用于高效处理迭代器和组合问题的工具。1.itertools.permutations(iterable,r=None)功能:生成输入迭代器的所有可能排列。参数:iterable:输入的可迭代对象。r:可选参数,指定排列的长度。如果不指定,则默认为输入迭代器的长度。示例:fromitertoolsimportpermutations#生成所有排列forperm
- C语言中哈希表的简单使用
koooo~
哈希算法散列表算法
什么是哈希表哈希表也叫散列表,是根据关键码值直接进行访问的数据结构。即通过关键值(key)映射到表中的某个位置,以便可以直接访问该节点,以提高查找速度。哈希表的实现在C语言中直接使用哈希表的过程较为繁琐,所以这里介绍C语言中的一个哈希表库——Uthash函数,使用时只需包含头文件**“uthash.h”.**首先介绍Uthash函数中的一些函数用法:HASH_FIND_INT作用:查找整数键的元素
- NumPy 函数用法详解:np.full 和 np.concatenate
m0_dawn
numpypython
##一、`np.full`函数:快速创建指定值填充的数组###功能`np.full`用于生成一个指定形状(shape)和数据类型(dtype)的数组,所有元素均填充为用户指定的固定值[[3]][[8]]。###语法```pythonnp.full(shape,fill_value,dtype=None)shape:数组形状,可以是整数(一维数组)或元组(多维数组),例如(3,4)表示3行4列[[8
- MATLAB中strsplit函数用法
jk_101
Matlabmatlab开发语言
目录语法说明示例在空白处拆分字符向量在特定分隔符处拆分值的字符向量根据文件分隔符拆分路径拆分具有多个分隔符的字符向量拆分具有多个重叠分隔符的文本strsplit函数的功能是在指定分隔符处拆分字符串或字符向量。语法C=strsplit(str)C=strsplit(str,delimiter)C=strsplit(str,delimiter,Name,Value)[C,matches]=strspl
- MATLAB技巧——norm和vecnorm两个函数讲解与辨析
MATLAB卡尔曼
MATLAB技巧matlab开发语言
在MATLAB中,norm和vecnorm是两个用于计算向量或矩阵范数的函数,虽然它们的功能相似,但在使用场景和适用性上存在一些区别。本文将详细解释这两个函数的用途、功能以及如何选择合适的函数。文章目录norm函数用法范数类型vecnorm函数用法范数类型选择合适的函数示例对比结论norm函数用法norm函数用于计算向量或矩阵的范数。它的基本语法如下:n=norm(A)其中,A可以是一个向量或矩阵
- strncpy函数用法及注意事项
没有烦恼273
scipyc语言
strncpy是标准库中的一个字符串操作函数,用于安全地复制指定长度的字符串。它的设计初衷是为了防止缓冲区溢出一、函数原型char*strncpy(char*str1,constchar*str2,size_tn);str1:目标字符串的指针(复制后的存储位置)。str2:源字符串的指针(要复制的字符串)。n:最多复制的字符数(包括终止符`\0`)。二、功能说明1.复制最多n个字符从str2到st
- Socket编程:C语言使用socket进行本地进程间通信、网络通信
wwww.wwww
c语言开发语言网络
文章目录概要Socket套接字的属性和函数用法Socket套接字的属性Socket套接字的C语言函数用法Socket本地进程间通信(UNIX域套接字)Socket网络间设备通信(基于TCP)Socket广播通信(基于UDP)Socket组播通信(基于UDP)使用Socket和IO多路复用满足并发需求多线程(pthreads)服务器同时处理多个客户端连接select函数实现并发网络通信poll函数实
- python dict函数用法_Python dict() 函数
weixin_39882589
pythondict函数用法
Pythondict()函数描述dict()函数用于创建一个字典。语法dict语法:classdict(**kwarg)classdict(mapping,**kwarg)classdict(iterable,**kwarg)参数说明:**kwargs--关键字mapping--元素的容器。iterable--可迭代对象。返回值返回一个字典。实例以下实例展示了dict的使用方法:>>>dict()
- react组件之间如何使用接收到的className(封装一个按钮案例)
尼古拉斯网页匠
react.js前端前端框架
带有hover渐变效果一、父组件importLineGradientBoxfrom'../line-gradient-box';importstylesfrom'./index.module.scss';{navigate('/sign-up');}}/>需要传递样式在父组件中先定义好(sitepx函数用法):.btn_height{height:sitepx(50);}二、子组件importcl
- python中is函数_python isinstance函数用法详解
weixin_39842029
python中is函数
这篇文章主要介绍了pythonisinstance函数用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下isinstance()函数来判断一个对象是否是一个已知的类型类似type()。isinstance()与type()区别:type()不会认为子类是一种父类类型,不考虑继承关系。isinstance()会认为子类是一种父类类型,考虑继承关
- python数据可视化之matplotlib实践pdf_Python数据可视化之matplotlib实践
weixin_39937312
目录第1篇入门第1章使用函数绘制matplotlib的图表组成元素21.1绘制matplotlib图表组成元素的主要函数21.2准备数据31.3绘制matplotlib图表组成元素的函数用法41.3.1函数plot()——展现变量的趋势变化41.3.2函数scatter()——寻找变量之间的关系51.3.3函数xlim()——设置x轴的数值显示范围61.3.4函数xlabel()——设置x轴的标签
- python视图函数是什么_flask框架视图函数用法示例
weixin_39645306
python视图函数是什么
本文实例讲述了flask框架视图函数用法。分享给大家供大家参考,具体如下:flask框架视图函数当中各种实用情况简单配置1建立连接2路由参数3返回网络状态码4自定义错误页面5重定向6正则url限制和url优化7设置和获取cookie#coding:utf8#导入flaskfromflaskimportFlask,abort,redirect,make_response,requestfromwer
- python 坐标转换算法
aganliang
ArcGISPythonpythonpandas坐标转换
这是一个高德地图经纬度转换为WGS84经纬度的算法。采用pandas读取csv文件,转换后的结果写入csv文件。还有一些细节需要修改。改善方向:发布成web,提供在线转换服务。关于pandas中的loc和iloc的用法,参考这篇文件:Pandas中loc和iloc函数用法详解#-*-coding:utf-8-*-importjsonimportmathimportpandasaspdx_pi=3.
- python中math库的ceil_详解Python3中ceil()函数用法
weixin_39860260
描述ceil(x)函数返回一个大于或等于x的的最小整数。语法以下是ceil()方法的语法:importmathmath.ceil(x)注意:ceil()是不能直接访问的,需要导入math模块,通过静态对象调用该方法。参数x--数值表达式。返回值函数返回返回一个大于或等于x的的最小整数。实例以下展示了使用ceil()方法的实例:#!/usr/bin/python3importmath#导入math模
- skynet.forward_type使用详解
monGyrate
SkynetSkynetLua游戏服务器
目录核心结论底层机制解析1.消息内存生命周期2.消息类型与协议处理函数用法详解函数签名示例代码关键使用场景场景1:消息转发(避免数据被释放)场景2:处理复杂内存对象配置表示例与说明注意事项总结skynet.forward_type是Skynet中用于精细化控制消息内存管理和重定向消息处理流程的核心机制,尤其在需要自定义内存释放或实现消息转发时至关重要。以下是对其作用、原理及用法的详细解析:核心结论
- 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独立出来,数据持