python学习第三天
条件判断
条件判断使用if
、elif
和else
关键字。它们用于根据条件执行不同的代码块。
# 条件判断
age = 18
if age < 18:print("你还是个孩子!")
elif age == 18:print("永远十八岁!")
else:print("你还年轻!")
循环
Python中有两种主要的循环结构:for
循环和while
循环。
for
循环
for
循环用于遍历序列(如列表、元组、字符串等)中的每个元素。
# for循环 遍历序列
array = ['test',1,[1,2,3,4,5]]
for arr in array:# 使用type函数判断类型 类似于java的判断类型instanceof 多进行类比if type(arr)==list:for a in arr:print('我是第二层循环:',a)else: print(arr)
# 循环字典 实例
disc = [{'name':'python','age':18},{'name':'java','age':18}]
for arr in disc:# 使用type函数判断类型 类似于java的判断类型instanceof 多进行类比if arr.get('name')=='python':print('我是python')else:print('我是java')
while循环
while
循环在条件为True
时重复执行代码块。
# while循环 比如累加计算
count = 0
total = 0
while count <= 100:count += 1total = total + count
print(total)
循环内部操作
关键字 | 作用 | 适用场景 |
---|---|---|
pass | 空操作,什么都不做,仅占位。 | 当语法上需要语句但逻辑上不需要操作时。在编写代码时,如果某些逻辑暂时不需要实现,但需要保持语法正确性,可以使用 pass(简单来说就是保证语法的正确性) 。 |
continue | 跳过当前迭代的剩余代码,直接进入下一次循环。 | 当需要跳过某些特定条件的迭代时。 |
break | 立即终止整个循环,不再执行后续迭代。 | 当满足某个条件时需要提前退出循环时。 |
else | 当循环正常结束(未被 break 中断)时执行 else 块中的代码。 | 当需要在循环正常结束后执行某些操作时。 |
# pass使用 当语法上需要语句但逻辑上不需要操作时 在编写代码时,如果某些逻辑暂时不需要实现,但需要保持语法正确性,可以使用 pass。可以点到range里看下 很多用到了pass
for i in range(10):if i == 2:passprint(f" i == {i} ")else:print(i)if i == 3:# 保证代码的完整性 如果有复杂的代码 需要待实现的部分就可以使用了pass
# continue跳过本次循环
for i in range(10):if i == 3:continueelse:print(i) # 打印结果 0-9 不含3
# break结束本次循环
for i in range(10):if i == 3:breakelse:print(i) # 打印结果 0 - 2
# else 除了break 不执行else外 其他的都会执行
for i in range(10):break
else:print("循环正常结束") # 因为break 不会被执行
for i in range(10):continue
else:print("循环正常结束") # 正常打印
for i in range(10):pass
else:print("循环正常结束") # 正常打印
列表操作
学到了循环,就要学习关于列表的元素的操作,其中包括查询、修改、插入、删除、排序等操作(实例:animal = ['dog','cat','elephant','rabbit']也可以看下面的查询修改中的实例)。
操作 | 方法/语法 | 描述 | 示例 |
---|---|---|---|
查询 | list[index] | 通过索引访问元素,索引从 0 开始。 | animal[0] 返回 " dog" |
list[-1]或者list[len(list)-1] | 访问最后一个元素。 | animal[-1] 或者animal[len(animal)-1]返回 "rabbit" | |
list[start:end] | 切片操作,获取从 start 到 end-1 的子列表。左开右闭区间。 | animal[0:2] 返回 [" dog", "cat"] | |
list.index(value) | 返回第一个匹配元素的索引。 | animal.index("cat") 返回 1 | |
value in list | 检查元素是否在列表中。 | "monkey" in animal 返回 False | |
修改 | list[index] = value | 修改指定索引处的元素。 | animal[1] = "monkey" 将 "cat" 修改为 "monkey" |
list[start:end] = [values] | 修改切片范围内的元素。 | animal[0:2] = ['giraffe','ant'] 替换 "dog" 和 "cat" | |
删除 | del list[index] | 删除指定索引处的元素。 | del animal[1] 删除 "cat" |
list.remove(value) | 删除第一个匹配的元素。 | animal.remove(" elephant") 删除 " elephant" | |
list.pop(index) | 删除并返回指定索引处的元素(默认删除最后一个元素)。 | animal.pop(1) 删除并返回 "dog" | |
list.clear() | 清空列表中的所有元素。 | animal.clear() 清空列表并返回 [] | |
插入 | list.append(value) | 在列表末尾添加一个元素。 | animal.append("rat") 添加"rat" |
list.insert(index, value) | 在指定索引处插入一个元素。 | animal.insert(2, "lion") 在索引 2 处插入 "lion" | |
list.extend(iterable) | 将另一个可迭代对象的所有元素添加到列表末尾。 | animal.extend(["fish", "shrimp"]) 添加 "fish" 和 "shrimp" | |
其他操作 | len(list) | 返回列表的长度。 | len(animal) 返回 4 |
list.sort() | 对列表进行排序(默认升序)。 | animal.sort() 排序列表 | |
list.reverse() | 反转列表中的元素顺序。 | animal.reverse() 反转列表 | |
list.copy() | 返回列表的浅拷贝。深拷贝方法为deepcopy() | new_animal = animal.copy() 创建 animal 的副本 | |
list.count(value) | 返回列表中匹配元素的个数。 | animal.count("cat") 返回 1 |
查询
# 列表查询操作 通过索引访问元素,索引从0开始。
animal = ['dog','cat','elephant','rabbit']
# 获取cat
print(animal[1]) # 输出:cat
# list[-1] 函数访问最后一个函数 或者 list[len()-1]
print(animal[len(animal)-1]) # 输出:rabbit
# list[start:end] 切片操作,获取从start到end-1的子列表。左闭右开
print(animal[0:2]) # 输出:['dog', 'cat']
# list.index(value) 返回第一个匹配元素的索引。
print(animal.index('cat')) #输出:1
# in 是否在集合中
print('monkey' in animal) #输出:false
修改
# 列表修改操作
animal = ['dog','cat','elephant','rabbit']
# cat修改为monkey
animal[1]= 'monkey'
print(animal) # 输出: ['dog', 'monkey', 'elephant', 'rabbit']
# list[start:end] = [values] 修改切片范围内的元素。 dog和monkey修改为giraffe和ant 注意使用[1,2]会变成添加['dog', 'giraffe', 'ant', 'elephant', 'rabbit']考虑为什么
animal[0:2]= ['giraffe','ant']
print(animal) # 输出: ['dog','monkey','giraffe','ant']
删除
# 列表删除操作
animal = ['dog','cat','elephant','rabbit']
# del list[index] 删除指定索引处的元素。
del animal[1]
print(animal) # 输出: ['dog', 'elephant', 'rabbit']
# list.remove(value) 删除第一个匹配的元素。
animal.remove('elephant')
print(animal) # 输出: ['dog', 'rabbit']
# list.pop(index) 删除并返回指定索引处的元素(默认删除最后一个元素)。
animal.pop()
print(animal) # 输出: ['dog']
# list.clear() 清空列表中的所有元素。 animal.clear()清空列表
animal.clear()
print(animal) # 输出: []
插入
# 列表添加操作
animal = ['dog','cat','elephant','rabbit']
# list.append(value) 在列表末尾添加一个元素
animal.append('rat')
print(animal) # 输出: ['dog','cat','elephant','rabbit','rat']
# list.insert(index, value) 在指定索引处插入一个元素。
animal.insert(2,'lion')
print(animal) # 输出: ['dog', 'cat', 'lion', 'elephant', 'rabbit', 'rat']
# list.extend(iterable) 将另一个可迭代对象的所有元素添加到列表末尾。 shrimp虾
animal.extend(['fish','shrimp'])
print(animal) # 输出: ['dog', 'cat', 'lion', 'elephant', 'rabbit', 'rat', 'fish', 'shrimp']
其他操作
# 列表其他操作
animal = ['dog','cat','elephant','rabbit']
# len(list) 返回列表的长度。
print(len(animal)) # 4
# list.sort() 对列表进行排序(默认升序)。
animal.sort()
print(animal) # ['cat', 'dog', 'elephant', 'rabbit']
# list.reverse() 反转列表中的元素顺序。
animal.reverse()
print(animal) # ['rabbit', 'elephant', 'dog', 'cat']
# list.copy() 返回列表的浅拷贝。
new_animal = animal.copy()
print(new_animal) # ['rabbit', 'elephant', 'dog', 'cat']
# list.count(value) 返回列表中匹配元素的个数。
print(animal.count('cat')) # 1
代码块
在Python中,代码块是通过缩进来定义的。通常使用4个空格或一个Tab键(跟java不同的是使用代码缩进来完成java代表是以{开始或者以}结束为一个代码块)来缩进。代码块用于组织代码,使其在逻辑上成为一个整体。
# 这是一个代码块 input函数式输入框 类似与java的system.in输入 系统输入
s = int(input('请输入一个数字:'))
if s > 0: # 也可以写if(s >0 )但是没必要 因为python给个提示建议去掉 保证代码的按照缩进来进行更加规范print("这个数字是大于0的数字!") # 这行代码属于if语句的代码块
elif s == 0:print("这个数字是等于0的数字!") # 这行代码属于elif语句的代码块
else:print("这个数字是小于0的数字!") # 这行代码属于else语句的代码块
方法块
在Python中,使用def
关键字来定义函数。函数是一段可重用的代码,可以接受参数并返回结果。
# def来定义方法
def method1(name,age):print('姓名:'+name,'年龄:'+age)
input(method1('python','18'))
相关文章:
python学习第三天
条件判断 条件判断使用if、elif和else关键字。它们用于根据条件执行不同的代码块。 # 条件判断 age 18 if age < 18:print("你还是个孩子!") elif age 18:print("永远十八岁!") else:print("你还年轻!")…...
k8s架构及服务详解
目录 1.1.容器是什么1.2.Namespace1.3.rootfs5.1.Service介绍5.1.1.Serice简介 5.1.1.1什么是Service5.1.1.2.Service的创建5.1.1.3.检测服务5.1.1.4.在运行的容器中远程执行命令 5.2.连接集群外部的服务 5.2.1.介绍服务endpoint5.2.2.手动配置服务的endpoint5.2.3.为外部服务…...
Unity中动态切换光照贴图LightProbe的方法
关键代码:LightmapSettings.lightmaps lightmapDatas; LightmapData中操作三张图:lightmapColor,lightmapDir,以及一张ShadowMap 这里只操作前两张: using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI;public cl…...
基于Matlab的多目标粒子群优化
在复杂系统的设计、决策与优化问题中,常常需要同时兼顾多个相互冲突的目标,多目标粒子群优化(MOPSO)算法应运而生,作为群体智能优化算法家族中的重要成员,它为解决此类棘手难题提供了高效且富有创新性的解决…...
Android Studio 新版本Gradle发布本地Maven仓库示例
发布代码到JitPack示例:https://blog.csdn.net/loutengyuan/article/details/145938967 以下是基于 Android Studio 24.2.2(Gradle 8.10.2 AGP 8.8.0 JDK17) 的本地 Maven 仓库发布示例,包含aar和jar的不同配置: 1.…...
Langchain解锁LLM大语言模型的结构化输出能力(多种实现方案)
在 LangChain解锁LLM大语言模型的结构化输出能力:调用 with_structured_output() 方法 这篇博客中,我们了解了格式化LLM输出内容的必要性以及如何通过调用langchain框架中提供的 with_structured_output() 方法对LLM输出进行格式化(三种可选方…...
深入理解Spring @Async:异步编程的利器与实战指南
一、为什么需要异步编程? 在现代高并发系统中,同步阻塞式编程会带来两大核心问题: // 同步处理示例 public void processOrder(Order order) {// 1. 保存订单(耗时50ms)orderRepository.save(order); // 2. 发送短信…...
让Word插上AI的翅膀:如何把DeepSeek装进Word
在日常办公中,微软的Word无疑是我们最常用的文字处理工具。无论是撰写报告、编辑文档,还是整理笔记,Word都能胜任。然而,随着AI技术的飞速发展,尤其是DeepSeek的出现,我们的文字编辑方式正在发生革命性的变…...
清华DeepSeek深度探索与进阶指南
「清华北大-Deepseek使用手册」 链接:https://pan.quark.cn/s/98782f7d61dc 「清华大学Deepseek整理) 1-6版本链接:https://pan.quark.cn/s/72194e32428a AI学术工具公测链接:https://pan.baidu.com/s/104w_uBB2F42Da0qnk78_ew …...
迁移学习策略全景解析:从理论到产业落地的技术跃迁
(2025年最新技术实践指南) 一、迁移学习的范式革命与核心价值 在人工智能进入"大模型时代"的今天,迁移学习已成为突破数据瓶颈、降低训练成本的关键技术。本文基于2025年最新技术进展,系统梳理六大核心策略及其在产业实…...
WireGuard搭建网络,供整个公司使用
一、清理现有配置(如已有失败尝试) # 停止并删除现有 WireGuard 接口 sudo wg-quick down wg0 sudo rm -rf /etc/wireguard/wg0.conf# 验证接口已删除 (执行后应该看不到 wg0) ifconfig二、服务器端完整配置流程 1. 安装 WireGuard sudo apt update &…...
MyAgent:用AI开发AI,开启智能编程的产业革命
在人工智能技术爆发的2025年,MyAgent智能体平台凭借其独特的“AI开发AI”模式,正在重构全球软件开发行业的底层逻辑。这一创新范式不仅将自然语言处理、机器学习、RPA(机器人流程自动化)等技术深度融合,更通过“…...
Cherno C++ P60 为什么不用using namespace std
这篇文章我们讲一下之前写代码的时候的一个习惯,也就是不使用using namespace std。如果我们接触过最早的C教程,那么第一节课都会让我们写如下的代码: #include<iostream>using namespace std;int main() {cout << "Hello …...
el-select的下拉选择框插入el-checkbox
el-check注意这里要使用model-value绑定数据 <el-selectv-model"selectDevice"multiplecollapse-tags:multiple-limit"5"style"width: 200px"popper-class"select-popover-class" ><el-optionv-for"item in deviceList…...
M系列芯片 MacOS 在 Conda 环境中安装 TensorFlow 2 和 Keras 3 完整指南
目录 1. 引言2. 环境准备3. 安装 TensorFlow 和必要依赖4. 结语Reference 1. 引言 Keras 是搞深度学习很可爱的工具,其友好的接口让我总是将其作为搭建模型原型的首选。然而,当我希望在 M 系列芯片的MacBook Pro上使用 Keras时,使用Conda和P…...
GitHub教程
目录 1.是什么?2.安装3.创建库3.增删改查4.远程仓库5.分支6.标签7.使用流程8.总结 1.是什么? Git 是一个命令行工具,但也有许多图形用户界面可用。本地仓库,安装包下载到本地。Git 的一个流行 GUI 是 GitHub,它可以方便地管理存储库、推送…...
《JavaScript解题秘籍:力扣队列与栈的高效解题策略》
232.用栈实现队列 力扣题目链接(opens new window) 使用栈实现队列的下列操作: push(x) -- 将一个元素放入队列的尾部。 pop() -- 从队列首部移除元素。 peek() -- 返回队列首部的元素。 empty() -- 返回队列是否为空。 示例: MyQueue queue new MyQueue(); queue…...
Supra软件更新:AGRV2K CPLD支持无源晶体做时钟输入
Supra软件更新:AGRV2K CPLD支持无源晶体做时钟输入 AGRV2K CPLD支持无源晶体做时钟输入,和AG32一样接入OSC_IN和OSC_OUT管脚。 VE管脚文件设为PIN_HSE,如: clk PIN_HSE ledout[0] PIN_31 ledout[1] PIN_32 ...... 在下载烧录文…...
简易的微信聊天网页版【项目测试报告】
文章目录 一、项目背景二、项目简介登录功能好友列表页面好友会话页面 三、测试工具和环境四、测试计划测试用例部分人工手动测试截图web自动化测试测试用例代码框架配置内容代码文件(Utils.py)登录页面代码文件(WeChatLogin.py)好…...
nio使用
NIO : new Input/Output,,在java1.4中引入的一套新的IO操作API,,,旨在替代传统的IO(即BIO:Blocking IO),,,nio提供了更高效的 文件和网络IO的 操作…...
【蓝桥杯单片机】第十二届省赛
一、真题 二、模块构建 1.编写初始化函数(init.c) void Cls_Peripheral(void); 关闭led led对应的锁存器由Y4C控制关闭蜂鸣器和继电器 由Y5C控制 2.编写LED函数(led.c) void Led_Disp(unsigned char ucLed); 将ucLed取反的值赋给P0 开启锁存器…...
Jenkins与Flutter项目持续集成实战指南
一、环境准备 1. 基础环境要求 Jenkins Server:已安装JDK 11,建议使用Linux服务器(Ubuntu/CentOS)Flutter SDK:全局安装或通过工具动态管理构建代理节点: Android构建:需Android SDK、Gradle、…...
linux常见操作命令
查看目录和文件 ls:列出目录内容。 常用选项: -l:以长格式显示,显示文件的权限、所有者、大小、修改时间等详细信息。-a:显示所有文件和目录,包括隐藏文件(以 . 开头的文件)。-h&…...
6.人工智能与机器学习
一、人工智能基本原理 1. 人工智能(AI)定义与范畴 核心目标:模拟人类智能行为(如推理、学习、决策)分类: 弱人工智能(Narrow AI):专精单一任务(如AlphaGo、…...
GPU架构分类
一、NVIDIA的GPU架构 NVIDIA是全球领先的GPU生产商,其GPU架构在图形渲染、高性能计算和人工智能等领域具有广泛应用。NVIDIA的GPU架构经历了多次迭代,以下是一些重要的架构: 1. Tesla(特斯拉)架构(2006年…...
23种设计模式之单例模式(Singleton Pattern)【设计模式】
文章目录 一、简介二、关键点三、实现单例模式的步骤四、C#示例4.1 简单的单例模式4.2 线程安全的单例模式(双重检查锁定)4.3 静态初始化单例模式 五、单例模式优缺点5.1 优点5.2 缺点 六、适用场景七、示例的现实应用 一、简介 单例模式(Si…...
MAX232数据手册:搭建电平转换桥梁,助力串口稳定通信
在现代电子设备的通信领域,串口通信因其简单可靠而被广泛应用。MAX232 芯片作为串口通信中的关键角色,发挥着不可或缺的作用。下面,我们将依据提供的资料,深入解读 MAX232 芯片的各项特性、参数以及应用要点。 一、引脚说明 MAX2…...
Day 55 卡玛笔记
这是基于代码随想录的每日打卡 所有可达路径 题目描述 给定一个有 n 个节点的有向无环图,节点编号从 1 到 n。请编写一个函数,找出并返回所有从节点 1 到节点 n 的路径。每条路径应以节点编号的列表形式表示。 输入描述 第一行包含两个整数…...
python量化交易——金融数据管理最佳实践——使用qteasy管理本地数据源
文章目录 统一定义的金融历史数据表最重要的数据表数据表的定义交易日历表的定义:交易日历表: trade_calendar qteasy是一个功能全面且易用的量化交易策略框架, Github地址在这里。使用它,能轻松地获取历史数据,创建交易策略并完…...
AVM 环视拼接 鱼眼相机
https://zhuanlan.zhihu.com/p/651306620 AVM 环视拼接方法介绍 从内外参推导IPM变换方程及代码实现(生成AVM环视拼接图)_avm拼接-CSDN博客 经典文献阅读之--Extrinsic Self-calibration of the Surround-view System: A Weakly... (环视系统的外参自…...
计算机基础面试(数据库)
1. 事务的ACID特性?如何通过日志保证原子性和持久性? 专业解答: ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Dura…...
Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks
Self-Pro: A Self-Prompt and Tuning Framework for Graph Neural Networks #paper/GFM/GNN-BASED# #paper/⭐⭐⭐# 注意:这篇文章是每个图一个GCN模型,而不是所有图一个GCN 模型 算是最早的涉及异配图的prompt了 贡献和动机: 非对…...
Spring Boot 与 MyBatis 版本兼容性
初接触Spring Boot,本次使用Spring Boot版本为3.4.3,mybatis的起步依赖版本为3.0.0,在启动时报错,报错代码如下 org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name userMapper…...
WPF 如何使文本显示控件支持显示内容滚动显示
WPF中如何使文本显示控件支持显示内容滚动显示 在WPF中,TextBlock 控件本身并不直接支持滚动功能,因为它的设计初衷是用于静态文本展示。但是,你可以通过一些技巧和自定义控件来实现 TextBlock 的滚动效果。以下是几种常见的方法:…...
1208. 尽可能使字符串相等
目录 一、题目二、思路2.1 解题思路2.2 代码尝试2.3 疑难问题 三、解法四、收获4.1 心得4.2 举一反三 一、题目 二、思路 2.1 解题思路 2.2 代码尝试 class Solution { public:int equalSubstring(string s, string t, int maxCost) {int curcost0;//统计当前开销int left0;…...
Linux系统管理操作
一、关闭防火墙 默认端口号是22,其他端口用不了,这时候就引出关闭防火墙 1.1、systemctl 1.1.1、基本语法 systemctl start | stop | restart | status 服务名 //启动、关闭、重启、查看状态 1.1.2、查看服务的方法 查看/usr/lib/systemd/syst…...
【STM32H743IIT6】将外部SDRAM作为内部SRAM使用的方法及需要解决的问题
前言 STM32H743的片上随机存取存储器(RAM)容量最大约为1KB。对于简单项目而言,这一容量尚可满足需求。但在处理更为复杂的应用程序时,尤其是在随机存取存储器方面,“空间不足”的问题就会不可避免地出现。此时&#x…...
AMD RDNA3 GPU架构解析
本文会通过把AMD的RDNA3架构为例比喻为**“施工公司”**工作模式,深入理解GPU如何高效处理顶点着色、像素计算等任务。 一、施工公司的组织架构 1. 施工公司(WGP)与施工队(CU) WGP(Work Group Processor&…...
博客系统--测试报告
博客系统--测试报告 项目背景项目功能功能测试①登录功能测试②发布博客功能测试③删除文章功能测试④功能测试总结: 自动化测试自动化脚本执行界面: 性能测试 本博文主要针对个人实现的项目《博客系统》去进行功能测试、自动化测试、性能测试࿰…...
打造个人知识库(Page Assist版)- 私人专属AI-本地化部署deepseek
上篇介绍了实现浏览器交互Ai Web Ui - chrome浏览器插件-Page Assist,安装即可使用,实现最简单的本地化部署AI使用。 实现浏览器交互Ai Web Ui-本地化部署的deepseek Ollama Page Assist 本编介绍使用 Page Assist 构建个人知识库,利用个…...
7zip安装与使用
在 Linux 上安装 7zip(7z) 取决于你的操作系统发行版。以下是不同系统的安装方法: 📌 1. Ubuntu / Debian 直接使用 p7zip: sudo apt update sudo apt install -y p7zip-full p7zip-rarp7zip-full → 支持 .7z 压缩和…...
蓝桥杯第15届真题解析
由硬件框图可以知道我们要配置LED 和按键、lcd,解决lcd引脚冲突 LED 先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题 按键 按键配置,由原理图按键所对引…...
springboot gradle 多项目创建
1.背景2.创建父项目3.配置gradlew4.创建子项目 1.背景 1.用IDE创建一个父项目(school_project),两个子项目(student_project,teacher_project)。子项目是两个springboot工程 2.使用gradle kotlin进行管理,…...
Protocol Buffers在MCU上的nanopb介绍及使用详解
在嵌入式系统和资源受限的环境中,传统的Protocol Buffers 可能显得过于庞大。因此,nanopb 应运而生,它是一个轻量级的 Protocol Buffers 生成器,专为嵌入式系统设计c语言设计。本文将介绍如何安装和使用 nanopb,以及通…...
leetcode日记(74)扰乱字符串
很有难度的一题,一开始真的绕了很多思维上的弯路。 最开始的想法是递归,看到题目的时候想到动态规划但是完全没有思路应该怎么用,结果确实是递归动态规划。 最开始的想法是构建树,每一层包含这一步划分的方法(实际会…...
Blazor-根级别级联值
根级别级联值注册 using Microsoft.AspNetCore.Components.Web; using Microsoft.AspNetCore.Components.WebAssembly.Hosting;namespace BlazorApp1 {public class Program{public static async Task Main(string[] args){var builder WebAssemblyHostBuilder.CreateDefault…...
懒加载能够解决Spring循环依赖吗
懒加载本身并不能直接解决 Spring 循环依赖问题,但它可以在一定程度上缓解或绕过循环依赖带来的问题,下面详细分析: 1. 什么是 Spring 循环依赖 循环依赖指的是两个或多个 Bean 之间相互依赖,形成一个闭环。例如,Bea…...
Matlab中使用GUIDE工具开发图形用户界面(GUI)
文章目录 1. 初识GUIDE工具1.1 .m 和 .fig的区别和联系1.2 GUIDE工具的详细介绍1.3 GUI控件的属性1.4 自动生成的 .m 文件1.5 回调函数 2. GUI中常见的函数2.1 get 和 set 函数2.2 handles.Tag2.3 OpeningFcn 和 OutputFcn2.4 Callback2.5 CreateFcn 和 DeleteFcn2.6 ButtonDow…...
[通俗易懂C++]:引用返回和地址返回
在之前的文章中已经提到过,当使用按值传递时会创建参数的一个副本到函数中。对于基本类型(复制成本较低),这是可以的。但对于类类型(如 std::string ),复制通常成本较高。我们可以通过使用(const)引用传递(或按地址传递)来避免进行昂贵的复制。 这篇文章主要介绍一些…...
基于 MySQL 数据库对三级视图(用户视图、DBA视图、内部视图)的详细解释
基于 MySQL 数据库对三级视图(用户视图、DBA视图、内部视图)的详细解释,结合理论与实际操作说明: 一、三级视图核心概念 数据库的三级视图是 ANSI/SPARC 体系结构的核心思想,MySQL 的实现逻辑如下: …...