面向对象初识
文章目录
一、面向对象
(一)什么是面向对象?
面向对象是一个编程范式(也就是我们写代码的套路)
满足我们的需求,比如:我现在给你一个商品列表,要你按照价格排序
首先我们要现有一个商品表
commodity_infos = [
{
"cid":101,"name":"苹果","price":5},
{
"cid":102,"name":"葡萄","price":8},
{
"cid":103,"name":"橘子","price":3},
{
"cid":104,"name":"猕猴桃","price":6},
{
"cid":105,"name":"柚子","price":2}
]
输出商品信息:利用一个for循环便可以将商品的信息输出
for commodity_info in commodity_infos:
print(commodity_info)
我们的需求是:通过价格排序
思路:
1.确定列表里的第一个元素的价格是列表里面最大的
拿列表里的第一个元素和它后边的元素比较一下
如果发现比第一个元素大的就要交换元素的位置
那么我们如何交换位置嘞?
list1 = [1, 2, 3, 4, 5]
list1[1], list1[0] = list1[0], list1[1]
#运行结果:[2, 1, 3, 4, 5]
#回顾一点点知识:给列表里的值重新赋值给变量
a, b, c, d, e = list1
print(a)
#运行结果:2
2.确定列表里的第二个元素的价格是列表里面第二大的
拿列表里的第二个元素和它后边的元素比较一下
如果发现比第二个元素大的就要交换元素的位置
3.确定列表里的第三个元素的价格是列表里面第三大的
拿列表里的第三个元素和它后边的元素比较一下
如果发现比第三个元素大的就要交换元素的位置
4.确定列表里的第四个元素的价格是列表里面第四大的
拿列表里的第四个元素和它后边的元素比较一下
如果发现比第四个元素大的就要交换元素的位置
(第五个就不用啦,因为我们在第四步的时候就已经将整体的排序都做好了)
实现的步骤:
1.取出前几个数据(不要最后一个)
2.拿到数据与后边的元素作比较
3.发现更大的交换位置
commodity_infos = [
{
"cid": 101, "name": "苹果", "price": 5},
{
"cid": 102, "name": "葡萄", "price": 8},
{
"cid": 103, "name": "橘子", "price": 3},
{
"cid": 104, "name": "猕猴桃", "price": 6},
{
"cid": 105, "name": "柚子", "price": 2}
]
#1.取出前几个数据(不要最后一个)
for r in range(len(commodity_infos) - 1): # r表示第r个数据
for c in range(r + 1, len(commodity_infos)):# c表示r后边的数据
#2.拿到数据与后边的元素作比较
if commodity_infos[r]["price"] < commodity_infos[c]["price"]:
#3.发现更大的交换位置
commodity_infos[r], commodity_infos[c] = commodity_infos[c], commodity_infos[r]
for commodity_info in commodity_infos:
print(commodity_info)
面向过程
-
总结之前写代码的套路,即分析出来写代码的步骤,然后使用代码逐步实现,如上诉的例子👆。这就是面向过程 (面向:即是以什么为核心)
-
面向过程就是把 一个复杂的过程流程化,进而简单化,我们要实现一个功能就要使用这种思维方式。
面向对象:对象再我们程序里边叫object,有物体的意思。
-
在使用面向对象写代码的时候,首先要想的就是这个程序有哪些部分组成,然后再去想每一步要怎么做。
-
在面向对象里面,我们想要把现实的事物在我们程序里面表示,需要将现实的事物抽象成我们代码里边的类,然后通过类产生程序对象,通过对象和我们现实生活中的事物对应。
面向对象与面向过程的关系
面向对象和面向过程都是我们写代码的方式,不能把他们对立起来,他们之间是相辅相成的。面向对象是从整体上分析构成,面向过程是注重怎样实现。
小tips❤️:
1.输出快捷方式
用法:变量名称.print + 按下enter键 即可立即变成 print(变量名称) 的形式
2.快速打出for循环的模板
用法:iter + 按下enter键 即可立即出现一个for循环的模板,如下
for in :
3.快速调整代码的的格式:
Ctrl
+Alt
+L
4.快速注释:
Ctrl
+/
5.property的快捷模板:
用法: props + Enter 即可出现模板
@property def (self): return @.setter
6.快速将参数传递的快捷键
Alt
+Enter
+Enter
,效果如下:class</