- Python学习笔记07
正文01
python学习笔记
第十三章,面向对象初识对象生活中数据的组织学校开学,要求学生填写自己的基础信息,一人发一张白纸,让学生自己填我叫林军杰,今年31岁.来自山东省,我是男的,中国人内容混乱改为登记表,打印出来让学生自行填写:姓名林军杰姓别男国籍中国籍贯山东省年龄31整洁明了程序中数据的组织在程序中简单使用变量来记录学生信息student_1={"姓名":"周杰轮","性别":"男","国籍":"中国","籍贯":"台
- Python学习笔记03
正文01
python学习笔记
第五章、Python函数函数介绍函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段name="itheima"length=len(name)print(length)输出结果:7为什么随时都可以使用len()统计长度?因为,len()是Python内置的函数:是提前写好的可以重复使用实现统计长度这一特定功能的代码段我们使用过的:input()、print()、str()、int()等都
- Python学习笔记 —— 文件处理模块
miles-zh
pythonpython
Excel文件openpyxl读/写Excel文件,https://pypi.org/project/openpyxlxlwt创建Excel文件,设置单元格样式,https://pypi.org/project/xlwtxlrd读取Excel文件,https://pypi.org/project/xlrdxlutils修改Excel文件,https://pypi.org/project/xluti
- 【Python学习笔记】Python logging模块的学习
Augenstern K
Pythonpython学习笔记
Pythonlogging模块基础介绍作用与功能基本用法引入模块创建并配置记录器的基本步骤代码演示日志级别日志消息格式用法介绍代码示例日志的输出位置代码示例日志记录的高级功能对日志记录进行过滤和处理在多个模块中使用同一个日志记录器总结当谈到日志记录时,logging库是Python中最常用的工具之一。它提供了许多功能和选项,使开发人员能够灵活地记录和管理应用程序的日志信息。引入logging作为P
- Python 线程池 ThreadPoolExecutor(二) - Python零基础入门教程
猿说编程
目录一.Python线程池前言二.Python线程池ThreadPoolExecutor常用函数1.线程池as_completed函数使用2.线程池map函数使用3.线程池wait函数使用三.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门一.Python线程池前言紧接着上一篇文章Python线程池ThreadPoolExecutor(一)我们继续对线程池深入一
- Python学习笔记(1)——环境安装与变量
ThinkerChenYi
python学习笔记Python学习笔记
python环境安装-python2还是python3python2只支持到2020年,并且python2和3有不少用法差异。要是刚学完python2不久就发现过时了这就很尴尬了,所以推荐使用python3-安装环境推荐:Anaconda+pychamAnaconda是一个python的科学计算包,python环境,常用模块以及工具都包含在里面,省心省力官网:https://www.anacond
- 2021-11-1 台式电脑出问题了,手机更新
小白的姐姐
Python学习:学习第四章部分内容今天做的事情:工作上了一节瑜伽课学习python感想:今天继续看了部分>,脑中产生了一个疑问,古时候交通不便,知识交流不通畅,老子他们是如何知晓世界万物发展的道的?不同的事物是不是有不同的发展规律呢?如果要遵循道来思考行事,首先自己要知道发展的规律吧?那么这个规律怎么获得呢?可以通过一个规律归纳出其他规律呢?这个是我今天疑惑的地方。还有就是关于书中要将书读薄的观
- Python学习-----命令行参数解析argparse库
被Python玩的Kenny
常用操作python学习整理学习python
一、argparse库介绍1、argparse库是python自带库,不用特殊安装2、argparse库是可以很好的解析命令行参数。即将python-a-b--path等-a、-b、–path这些的命令行参数值解析并保存起来,以供程序使用。二、关于命令行参数的一些说明命令行参数分为必选参数和可选参数。必选参数:又名位置参数,即在参数值不需要跟在参数名后面,而是通过在命令行里的相对位置来决定其属于哪
- 2.25python笔记 高阶编程
13351
@[TOC](2.25学堂在线python学习笔记高阶编程)#高阶编程1.利用二分法查找一个字符是否在某个字符串当中基线条件:当s=''时,返回False当len(s)=1且s==char时返回True当len(s)>1且s[mid]>char时,返回isIn(char,s[:mid])否则当s[mid]1:ifs[mid]>char:print(s)returnisIn(char,s[:mid]
- Python print 函数- Python零基础入门教程
猿说编程
目录1.print函数输出单个字符2.print函数输出多个字符3.设置print函数不换行4.猜你喜欢零基础Python学习路线推荐:Python学习目录>>Python基础入门print翻译为中文指打印,在Python中能直接输出到控制台,我们可以使用print函数打印任何变量的值到控制台,简单方便。1.print函数输出单个字符print函数能直接打印单边个变量a=1.0print(a)#输
- Python学习DAY06_面向对象编程_基础
是憧憬呀
Python学习python
面向对象编程面向对象思想有3大要素:封装、继承和多态。把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。上面是比较官
- Python学习系列 -认识面向对象三大特性、可见性和属性装饰器
需要休息的KK.
python学习javapycharm面试
系列文章目录第一章初始Python第二章认识Python变量、类型、运算符第三章认识条件分支、循环结构第四章认识Python的五种数据结构第五章认识Python函数、模块第六章认识面向对象三大特性文章目录系列文章目录前言一、类和对象1.定义类2.创建和使用类对象3.使用类对象中的方法4.初始化二、面向对象的三大特性1.封装2.继承3.多态三、属性可见性四、属性装饰器总结前言面向对象编程是一种非常流
- 从0开始python学习-54.python中flask创建MD5和base64加密校验的接口
不会代码的小测试
pythonpython学习flask测试工具开发语言后端
MD5加密接口importhashlibfromflaskimportFlask,request,jsonify#初始化一个flask的对象app=Flask(__name__)#MD5加密校验数据请求#定义用户数据user_data=[{"username":"admin1","password":"E10ADC3949BA59ABBE56E057F20F883E"},#123456{"user
- python学习(十)文件和异常-(下)
August________
异常使用被称为异常的特殊对象来管理程序执行期间发生的错误。每当发生python不知所措的错误时,都会创建一个异常对象。编写处理该异常的代码,程序将继续执行。如果未对异常做出处理,程序将停止,并显示一个traceback。使用try-except代码块处理异常处理ZeroDivisionError异常print(5/0)Traceback(mostrecentcalllast):File"D:\学习
- python学习记录4--给自己:布尔运算&循环(break,continue,pass,else,exit())
mee_tiz
python
M酱正在快马加鞭地赶来(咚咚咚)~~~一、布尔运算1.定义:布尔运算是数字符号化的逻辑推演法,包括联合、相交、相减。在图形处理操作中引用了这种逻辑运算方法以使简单的基本图形组合产生新的形体,并由二维布尔运算发展到三维图形的布尔运算。由于布尔在符号逻辑运算中的特殊贡献,很多计算机语言中将逻辑运算称为布尔运算,将其结果称为布尔值。逻辑运算(logicaloperators)通常用来测试真假值。最常见到
- Python初学之旅:探索、挑战与收获
琛哥的程序
python开发语言
自从我决定踏入编程的大门,Python成为了我选择的第一把钥匙。这把钥匙不仅为我打开了一个全新的世界,还让我在其中找到了乐趣、挑战和不断的成长。在此,我想分享我作为初学者的Python学习之旅,记录那些摸索、尝试和突破的时刻。在开始学习之前,我对编程几乎一无所知,只知道它是一种让计算机执行任务的方式。选择Python作为起点,是因为听闻它的语法简洁、易于上手,而且应用领域广泛。但真正踏入学习之后,
- mitoinstaller,一个强大的 Python 库!
Sitin涛哥
Pythonpython开发语言
更多Python学习内容:ipengtao.com大家好,今天为大家分享一个强大的Python库-mito。Github地址:https://github.com/mito-ds/mito在Python开发中,打包和发布应用程序是一个常见的任务,尤其是当你想要与其他人分享你的应用时。MitoInstaller是一个方便易用的Python库,旨在简化Python应用程序的打包和发布过程。它提供了简单
- 平淡无奇的一天
王玉增之成长
早上卧床阅读了半小时【创富法则】,制作阅读书签一张!哈哈哈,美好的一天开始啦!断舍离是一件愉悦身心健康的事!起床后把昨天换下的衣服洗干净晾上!屋里收拾了一翻,该丢的都丢了,开开心心的出门啦!主要是花了8.9元报了Python学习,写代码果然不容易,用了一个下午才过了两关!每天3关才可以跟上7天进度!所以要好好学习,要把时间倾斜过来!每天至少两个小时在这个课程上面!晚上带着徒弟玩5回合实现出圈梦想的
- Python学习笔记——逻辑运算符not,and,or
phoebe’
python
运算优先级:not>and>or三个都从左往右解析,区别如下not:返回布尔型(TrueorFalse)>>>not7False>>>not0Trueand:有0(False)则返回0(False),否则返回后一个变量(常数)>>>3and0and10>>>1and2and33>>>Falseand1Falseor:返回第一个不为0(False)的变量(常数)>>>FalseorTrueTrue>
- python学习笔记——三目运算符与逻辑运算符
phily123
python学习笔记python
一、三目运算符python中用ifelse来替代其他编程语言的?:三目运算符,并且用法不同。ifa>b:c=aelse:c=bpython中:c=aifa>belsebc语言中:c=a>b?a:b二、逻辑运算符python中逻辑运算符用andornot:20and10#结果是1020or10#结果是200or10#结果是10not10#结果是Falsenot0#结果是Truec语言中逻辑运算符用&
- Python学习第三天——逻辑运算符、输入输出、流程控制
听风-_-
学习记录python
1.逻辑运算符not“非”,如果x为True,则返回False。and“与”,y为True,如果x为Fals额,xandy的结果为Flase。若x为True,则返回y的值。(判断结果为True)or“或”,y为False,如果x的值为True,则它的返回值为True,否则返回y的值。总结:当判断条件为True时,返回当前的值。优先级:not>and>or2.输入输出(1)输入python3.x中输
- Python学习记录——사 运算符
咬光空气
Python学习python开发语言后端
目录1、算术运算符2、赋值运算符3、复合赋值运算符4、比较运算符5、逻辑运算符1、算术运算符+-*/除//整数,取商%取模,也是取余,取除后的余数**指数,幂运算()()高于**高于*///%高于+-2、赋值运算符=,既可以单变量,也可以多变量赋值,比如a,b,v,d=3,g=e=r=17,也可以同时赋值多个变量3、复合赋值运算符+=、-=、*=、/=、//=、%=、**=复合和其它同在时,先算复
- Python学习——字典和集合
心若鉴
Python学习——字典和集合泛映射类型(1)什么是可散列的数据类型?如果一个对象是可散列的,那么在这个对象的生命周期中,它的散列值是不变的,而且这个对象需要实现__hash__()方法。另外可散列对象还要__eq__()方法,这样才能跟其他键作比较。如果两个可散列对象是相等的,那么它们的散列值一定是一样的。(2)什么是hash()函数呢?hash()用于获取一个对象(字符串或者数值等)的哈希值>
- Python学习篇33-Python操作Excel存储数据
IRON~TXTECHCOM
Python语境:编码之魅理解之智python学习excel开发语言
Python操作Excel存储数据openpyxl模块openpyxl模块是一个读写Excel2010文档的Python库,如果要处理更早格式的Excel文档,需要用到额外的库,openpyxl是一个比较综合的工具,能够同时读取和修改Excel文档。安装openpyxl模块要想使用openpyxl模块,必须先安装此模块。直接使用pip就可以进行安装,命令如下:pipinstallopenpyxlE
- Python学习Pytorch
xdpcxq1029
python学习pytorch
一、如何查看本机是否安装了Pytorch在Python环境中查看是否安装了PyTorch可以通过几个简单的步骤来完成。这里有一些方法:使用Python命令行:打开你的命令行工具(比如Terminal、CommandPrompt或AnacondaPrompt),然后输入Python来启动Python解释器。之后,尝试导入PyTorch库来看看是否会报错。importtorchprint(torch.
- OpenCV-Python学习(九):图像滤波
星光下的胖子
目录:1.滤波的相关概念2.卷积操作3.平滑操作(低通滤波)均值滤波中值滤波高斯滤波双边滤波4.锐化操作(高通滤波)自定义锐化核USM锐化(UnsharpMask)5.梯度操作(高通滤波)Sobel算子Scharr算子Laplacian算子一、滤波的概念滤波是将信号中特定波段频率滤除的操作,是抑制和防止干扰的一项重要措施。图像滤波是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处
- Python学习(16)|列表_遍历_排序_max_min_sum
Bug.ink
学习python开发语言算法pycharm
列表的遍历:a=[10,20,30,40]forobjina:#obj是临时变量名称,随意起名print(obj)执行结果:复制列表所有的元素到新列表对象:list1=[30,40,50]list2=list1#只是将list2也指向了列表对象。也就是说list1和list2持有地址是相同的,列表对象本身的元素并没有复制print(id(list1))#执行结果:1933292032520prin
- 【python学习】——pyttsx3库实现文本朗读、音量、音速等调节
有情怀的机械男
python学习文本朗读pyttsx3
importpyttsx3#初始化朗读引擎engine=pyttsx3.init()#设置朗读速度self.engine.setProperty('rate',120)#text为需要读取的内容self.engine.say(text)#不添加下面这句,没有声音self.engine.runAndWait()pyttsx3其他应用:pythonpyttsx3实现文字朗读_JSON_L的博客-CSD
- Python学习
1eb034fb5715
Tornado是一个PythonWeb框架和异步网络库,通过使用非阻塞网络I/O,Tornado可以扩展到数万个开放连接,WebSockets等需要与每个用户建立长期连接的应用程序。
- Python 教学 | Python 学习路线+经验分享,新手必看!
企研数据
pythonPython入门Python学习路线Python经验分享1024程序员节
更多内容点击查看Python教学|Python学习路线+经验分享,新手必看!Python教学专栏,旨在为初学者提供系统、全面的Python编程学习体验。通过逐步讲解Python基础语言和编程逻辑,结合实操案例,让小白也能轻松搞懂Python!>>>点击此处查看往期Python教学内容本文目录一、前言二、为什么学Python?三、Python学习路线与经验分享1.Python环境配置2.Python
- 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独立出来,数据持