【Python 学习 / 5】函数详解(定义、参数、作用域、lambda、内置函数)
文章目录
- 一、函数
- 1. 定义函数
- 1.1 基本函数定义
- 1.2 带参数的函数
- 1.3 带返回值的函数
- 2. 参数传递
- 2.1 位置参数
- 2.2 默认参数
- 2.3 可变参数
- 2.3.1 使用`*args`
- 2.3.2 使用`**kwargs`
- 2.4 参数的混合使用
- 3. 作用域
- 3.1 局部和全局变量
- 3.2 `global` 关键字
- 输出:
- 3.3 `nonlocal`关键字
- 输出:
- 4. lambda 表达式
- 4.1 基本用法
- 4.2 与`map()`、`filter()`和`sorted()`结合使用
- 5. 常用内置函数
- 5.1 数据类型转换
- 5.2 数学函数
- 5.3 序列操作
- 5.4 其他常用函数
一、函数
函数是Python中组织代码的基本单位。它可以通过封装一组语句,实现代码复用。函数可以接受输入参数并返回结果,极大地提高了代码的可读性和维护性。
1. 定义函数
在Python中,使用def
关键字来定义一个函数。函数名后面跟一对小括号,括号中可以放参数。函数体需要缩进。
1.1 基本函数定义
def greet():print("Hello, World!")# 调用函数
greet() # 输出: Hello, World!
1.2 带参数的函数
函数可以接受输入的参数,定义时在括号中列出参数名,调用时传入相应的值。
def greet(name):print(f"Hello, {name}!")greet("Alice") # 输出: Hello, Alice!
1.3 带返回值的函数
函数可以返回一个值,使用return
语句返回结果。如果没有return
语句,函数默认返回None
。
def add(a, b):return a + bresult = add(3, 4)
print(result) # 输出: 7
2. 参数传递
Python支持多种类型的参数传递方式。函数定义时可以使用位置参数、默认参数、可变参数和关键字参数等。
2.1 位置参数
位置参数是最常见的参数传递方式,调用时必须按照定义的顺序传入值。
def subtract(a, b):return a - bprint(subtract(10, 5)) # 输出: 5
2.2 默认参数
函数定义时可以为某些参数设置默认值。调用时可以选择传入该参数的值,也可以使用默认值。
def greet(name="Guest"):print(f"Hello, {name}!")greet("Alice") # 输出: Hello, Alice!
greet() # 输出: Hello, Guest!
2.3 可变参数
如果不确定函数需要接收多少个参数,可以使用可变参数。Python提供了两种方式来处理可变参数:
*args
:用于接收位置参数,收集传入的多个位置参数并将它们作为元组传递。**kwargs
:用于接收关键字参数,收集传入的多个关键字参数并将它们作为字典传递。
2.3.1 使用*args
def sum_numbers(*args):return sum(args)print(sum_numbers(1, 2, 3)) # 输出: 6
print(sum_numbers(1, 2, 3, 4, 5)) # 输出: 15
2.3.2 使用**kwargs
def display_info(**kwargs):for key, value in kwargs.items():print(f"{key}: {value}")display_info(name="Alice", age=25)
# 输出:
# name: Alice
# age: 25
2.4 参数的混合使用
可以混合使用位置参数、默认参数、*args
和**kwargs
,但需要遵循一定的顺序:位置参数 > 默认参数 > *args
> **kwargs
。
def greet(name, age=30, *args, **kwargs):print(f"Name: {name}, Age: {age}")print("Additional Arguments:", args)print("Keyword Arguments:", kwargs)greet("Alice", 25, "Engineer", country="USA", hobby="Reading")
# 输出:
# Name: Alice, Age: 25
# Additional Arguments: ('Engineer',)
# Keyword Arguments: {'country': 'USA', 'hobby': 'Reading'}
3. 作用域
Python中的作用域是指变量的可访问范围。作用域主要分为四种:
- 局部作用域(Local Scope):函数内部定义的变量,只在函数内部有效。
- 嵌套作用域(Enclosing Scope):嵌套函数中的外部函数作用域。
- 全局作用域(Global Scope):在模块级别定义的变量,可以在整个模块内访问。
- 内置作用域(Built-in Scope):Python内置的标识符,如
print()
、len()
等。
Python根据作用域规则来查找变量,遵循LEGB(Local -> Enclosing -> Global -> Built-in)规则。
3.1 局部和全局变量
x = 10 # 全局变量def example():x = 5 # 局部变量print("Local x:", x)example() # 输出: Local x: 5
print("Global x:", x) # 输出: Global x: 10
好的,我将详细解释global
和nonlocal
关键字的工作原理,并提供更详细的案例。
3.2 global
关键字
global
关键字用于在函数内部声明变量为全局变量。这意味着在函数内部修改该变量的值时,修改的是全局作用域中的变量,而不是局部作用域中的新变量。
案例:修改全局变量
假设我们有一个全局变量x
,我们想要在一个函数内部修改它的值。没有global
关键字的话,Python会认为我们在函数内部创建了一个局部变量,而不会影响全局变量。为了确保修改全局变量,必须使用global
关键字。
# 全局变量 x
x = 10# 定义一个函数来修改 x
def modify_global():global x # 声明x为全局变量print(f"修改前的全局变量 x: {x}") # 输出全局变量x的值x = 20 # 修改全局变量 xprint(f"修改后的全局变量 x: {x}") # 输出修改后的值# 调用函数
modify_global()# 输出全局变量 x 的最终值
print(f"全局变量 x 在函数外部的值: {x}")
输出:
修改前的全局变量 x: 10
修改后的全局变量 x: 20
全局变量 x 在函数外部的值: 20
解释:
- 在
modify_global
函数内部,通过global x
声明了x
是全局变量,所以我们可以修改全局作用域中的x
。 - 在函数内修改
x
的值时,实际上修改的是全局变量,而不是在函数内创建一个新的局部变量。 - 函数调用后,
x
的值已经改变,打印出的x
的值为20
,这就是全局作用域中变量的最新值。
3.3 nonlocal
关键字
nonlocal
关键字用于在嵌套函数中修改外部函数的局部变量,而不是全局变量。它会查找最靠近的外层作用域,确保修改的是外层函数的局部变量,而不是在当前函数或全局作用域中创建新变量。
案例:修改外部函数的局部变量
假设我们有一个外部函数outer
,其中定义了一个变量x
,并且有一个嵌套的内部函数inner
。如果我们希望在inner
函数中修改outer
函数中的x
,就需要使用nonlocal
关键字。
def outer():x = 10 # 外部函数中的局部变量print(f"外部函数 outer 中的初始 x: {x}") # 输出初始值def inner():nonlocal x # 使用 nonlocal 修改外部函数中的 xprint(f"内层函数 inner 中的 x(修改前): {x}") # 输出修改前的值x = 20 # 修改外部函数中的 xprint(f"内层函数 inner 中的 x(修改后): {x}") # 输出修改后的值inner() # 调用内层函数print(f"外部函数 outer 中的 x(修改后): {x}") # 输出外部函数中的最终值# 调用外部函数
outer()
输出:
外部函数 outer 中的初始 x: 10
内层函数 inner 中的 x(修改前): 10
内层函数 inner 中的 x(修改后): 20
外部函数 outer 中的 x(修改后): 20
解释:
outer
函数中定义了变量x
,初始值为10
。- 在
inner
函数中,通过nonlocal x
声明x
是outer
函数中的局部变量。这使得inner
函数中的x
指向outer
函数的x
,而不是在inner
中创建一个新的局部变量。 - 在
inner
函数中修改了x
的值为20
,这直接影响了外部函数outer
中的x
。 - 最终,
outer
函数中的x
的值变为20
。
总结:
global
:用于声明在函数内修改全局变量。nonlocal
:用于声明在嵌套函数中修改外部函数的局部变量,而不是创建一个新的局部变量。
4. lambda 表达式
Lambda表达式是Python中创建匿名函数的一种方式。它通常用于简化函数定义,特别是在需要传递函数作为参数的场合。
4.1 基本用法
# 定义一个简单的lambda函数
add = lambda x, y: x + y
print(add(2, 3)) # 输出: 5
4.2 与map()
、filter()
和sorted()
结合使用
lambda
表达式常常与Python的内置函数map()
、filter()
和sorted()
一起使用,以简化代码。
map()
:将函数应用到序列的每个元素上。filter()
:过滤掉不满足条件的元素。sorted()
:根据指定的排序规则对序列进行排序。
# 使用lambda和map
numbers = [1, 2, 3, 4]
squared = list(map(lambda x: x**2, numbers))
print(squared) # 输出: [1, 4, 9, 16]# 使用lambda和filter
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers) # 输出: [2, 4]# 使用lambda和sorted
sorted_numbers = sorted(numbers, key=lambda x: -x)
print(sorted_numbers) # 输出: [4, 3, 2, 1]
5. 常用内置函数
Python提供了大量的内置函数,这些函数可以帮助我们进行常见的操作,如数据转换、数学计算、序列操作等。
5.1 数据类型转换
int()
:将字符串或其他数字类型转换为整数。float()
:将字符串或其他数字类型转换为浮点数。str()
:将对象转换为字符串。
x = "123"
print(int(x)) # 输出: 123
print(float(x)) # 输出: 123.0
print(str(123)) # 输出: '123'
5.2 数学函数
abs()
:返回绝对值。min()
:返回最小值。max()
:返回最大值。sum()
:返回序列中所有元素的和。
print(abs(-10)) # 输出: 10
print(min(1, 2, 3)) # 输出: 1
print(max(1, 2, 3)) # 输出: 3
print(sum([1, 2, 3])) # 输出: 6
5.3 序列操作
len()
:返回序列的长度。sorted()
:返回排序后的序列。reversed()
:返回反转后的序列。
a = [3, 1, 2]
print(len(a)) # 输出: 3
print(sorted(a)) # 输出: [1, 2, 3]
print(list(reversed(a))) # 输出: [2, 1, 3]
5.4 其他常用函数
enumerate()
:返回一个枚举对象,可以同时获取序列的索引和值。zip()
:将多个可迭代对象打包成一个元组的列表。all()
:如果所有元素为True
,返回True
。any()
:如果至少一个元素为True
,返回True
。
a = ['apple', 'banana', 'cherry']
for idx, fruit in enumerate(a):print(idx, fruit)b = [1, 2, 3]
c = ['a', 'b', 'c']
zipped = list(zip(b, c))
print(zipped) # 输出: [(1, 'a'), (2, 'b'), (3, 'c')]print(all([True, True, False])) # 输出: False
print(any([False, False, True])) # 输出: True
相关文章:
【Python 学习 / 5】函数详解(定义、参数、作用域、lambda、内置函数)
文章目录 一、函数1. 定义函数1.1 基本函数定义1.2 带参数的函数1.3 带返回值的函数 2. 参数传递2.1 位置参数2.2 默认参数2.3 可变参数2.3.1 使用*args2.3.2 使用**kwargs 2.4 参数的混合使用 3. 作用域3.1 局部和全局变量3.2 global 关键字输出: 3.3 nonlocal关键…...
WPF7-数据绑定基础
1. WPF数据绑定试验 1.1. 数据绑定的核心实现1.2. {Binding}语法1.3. 理解 DataContext 1. WPF数据绑定试验 以下是一个简单的 WPF 数据绑定示例,使用两个TextBox控件分别表示Name和Age来进行进行数据绑定试验。 数据模型类 创建一个 Person 类,包含…...
http 与 https 的区别?
HTTP(超文本传输协议)和 HTTPS(安全超文本传输协议)是互联网通信的基础协议。随着网络技术的发展和安全需求的提升,HTTPS变得越来越重要。本文将深入探讨HTTP与HTTPS之间的区别,包括其工作原理、安全性、性能、应用场景及未来发展等。 1. HTTP与HTTPS的基本概念 1.1 HT…...
大数据学习(49) - Flink按键分区状态(Keyed State)
&&大数据学习&& 🔥系列专栏: 👑哲学语录: 承认自己的无知,乃是开启智慧的大门 💖如果觉得博主的文章还不错的话,请点赞👍收藏⭐️留言📝支持一下博主哦ᾑ…...
IP 路由基础 | 路由条目生成 / 路由表内信息获取
注:本文为 “IP 路由” 相关文章合辑。 未整理去重。 IP 路由基础 秦同学学学已于 2022-04-09 18:44:20 修改 一. IP 路由产生背景 我们都知道 IP 地址可以标识网络中的一个节点,并且每个 IP 地址都有自己的网段,各个网段并不相同…...
COBOL语言的移动应用开发
COBOL语言的移动应用开发探讨 引言 在信息技术快速发展的今天,移动应用开发已成为各行各业不可或缺的一部分。许多企业和开发者纷纷转向使用新兴的编程语言和开发工具,以满足不断变化的用户需求。然而,作为一种历史悠久的编程语言ÿ…...
TCP协议(Transmission Control Protocol)
TCP协议,即传输控制协议,其最大的特征就是对传输的数据进行可靠、高效的控制,其段格式如下: 源端口和目的端口号表示数据从哪个进程来,到哪个进程去,四位报头长度表示的是TCP头部有多少个4字节,…...
C语言数组之二维数组
C语言 主要内容 数组 二维数组 数组 二维数组 定义 二维数组本质上是一个行列式的组合,也就是说二维数组由行和列两部分组成,属于多维数组。二维数组数据是通过行列进行解读。二维数组可被视为一个特殊的一维数组,相当于二维数组又是一…...
计算机专业知识【软件开发中的常用图表:E - R图、HIPO、DFD、N - S、PAD详解】
在软件开发过程中,有许多种图表工具被用于不同阶段的设计和分析,帮助开发者更清晰地理解系统结构、数据流程和算法逻辑。下面将详细介绍E - R图、HIPO图、DFD图、N - S图和PAD图,包括它们的样子和用途。 一、E - R图(实体 - 联系…...
多人协同开发 —— Git Aoneflow工作流
一、Aoneflow工作流核心架构 #mermaid-svg-rwTOe9qYwzG3wkdy {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-rwTOe9qYwzG3wkdy .error-icon{fill:#552222;}#mermaid-svg-rwTOe9qYwzG3wkdy .error-text{fill:#552222…...
VSCode运行Go程序报错:Unable to process `evaluate`: debuggee is running
如果使用默认的VSCode的服务器来运行Go程序,那么使用fmt.Scan函数输入数据的时候就会报错,我们需要修改launch.json文件,将Go程序运行在shell终端上。 main.go package mainimport "fmt"func main() {var n intfmt.Scan(&n)v…...
Mybatis高级(动态SQL)
目录 一、动态SQL 1.1 数据准备: 1.2 <if>标签 1.3<trim> 标签 1.4<where>标签 1.5<set>标签 1.6 <foreach>标签 1.7<include> 标签 一、动态SQL 动态SQL是Mybatis的强⼤特性之⼀,能够完成不同条件下不同…...
在 Vue 3 中使用 Lottie 动画:实现一个加载动画
在现代前端开发中,动画是提升用户体验的重要元素之一。Lottie 是一个流行的动画库,它允许我们使用 JSON 文件来渲染高质量的动画。本文将介绍如何在 Vue 3 项目中集成 Lottie 动画,并实现一个加载动画效果。 如果对你有帮助请帮忙点个&#x…...
建筑行业安全技能竞赛流程方案
一、比赛时间: 6月23日8:30分准时到场;9:00-10:00理论考试;10:10-12:00现场隐患答疑;12:00-13:30午餐;下午13:30-15:30现场…...
Mybatisplus自定义sql
文章目录 引言流程 引言 mybatisplus最擅长的将where里面的语句给简便化,而不用我们自己写标签来实现条件查询 但是很多公司规范我们将sql写在mapper层中,不能写在service中 而且一些语句查询的不同select count(*) xxx from xxx 也难以用mp来实现 如何…...
情书网源码 情书大全帝国cms7.5模板
源码介绍 帝国cms7.5仿《情书网》模板源码,同步生成带手机站带采集。适合改改做文学类的网站。 效果预览 源码获取 情书网源码 情书大全帝国cms7.5模板...
基于Unity引擎的网络通信架构深度解析——以NetworkConnectionController为例
一、架构概览与设计理念 本文将以重构后的NetworkConnectionController为核心,深入分析基于Unity引擎的MMO网络通信架构设计。该模块采用分层设计思想,通过连接池管理、流量控制、心跳监测等多维度技术手段,构建了一个高性能、可扩展的网络通…...
C#学习之DataGridView控件
目录 一、DataGridView控件常用属性、方法、事件汇总表 1. 常用方法、属性和事件汇总 二、DataGridView 控件的常用方法调用 1. DataBind() 方法 2. Clear() 方法 3. Refresh() 方法 4. Sort() 方法 5. ClearSelection() 方法 6. BeginEdit() 方法 7. EndEdit() 方法…...
midjourney 一 prompt 提示词
midjourney 不需要自然语言的描述,它只需要关键词即可。 一个完整的Midjourney prompt通常包括三个部分 图片提示(Image Prompts)、文本提示(Text Prompt)和参数(Parameters)。 1、图片提示(…...
谈谈 wait 和 notify
目录 1 wait()方法 2 notify()⽅法 3 wait 和 sleep 的区别 多线程调度是随机的, 很多时候希望多个线程能够按照咱们规定的顺序来执行. 完成线程之间的配合工作. wait和notify就是一个用来协调线程顺序的重要工具. 这俩方法都是 Object 提供的方法. 随便找个对象࿰…...
250214-java类集框架
引言 类集框架本质上相当于是容器,容器装什么东西由程序员指定 1.单列集合 单列集合是list和set,list的实现类有ArrayList和LinkedList,前者是数组实现,后者是链表实现。list和set,前者有序、可重复,后者…...
Python学习心得异常处理
有些代码在操作的过程当中,如果不注意其所限定的条件,可能在输入函数值时引发一些程序的报错,这样为了让代码自己能做到抛除异常操作的情况,就得让代码具有排除异常的能力。下面的一些操作就使得代码具有该功能,处理异…...
【机器学习】线性回归 多项式线性回归
【机器学习系列】 KNN算法 KNN算法原理简介及要点 特征归一化的重要性及方式线性回归算法 线性回归与一元线性回归 线性回归模型的损失函数 多元线性回归 多项式线性回归 多项式线性回归 V1.0多项式回归多项式回归的公式 特征代换超越函数作为特征向量维度 V1.0 多项式回归 …...
链表和list
链表和list 算法题中的经典操作:用空间代替时间 双链表头插顺序: 1.先修改新结点的左右指针 2.然后修改结点y的左指针 3.最后修改哨兵位的右指针 双链表在任意位置(p)之后插入…...
vscode的一些实用操作
1. 焦点切换(比如主要用到使用快捷键在编辑区和终端区进行切换操作) 2. 跳转行号 使用ctrl g,然后输入指定的文件内容,即可跳转到相应位置。 使用ctrl p,然后输入指定的行号,回车即可跳转到相应行号位置。...
sass中@import升级@use的使用区别与案例
在 Sass 中,import 和 use 都用于模块化代码,但二者有显著区别。以下是主要差异和具体案例说明: 核心区别对比 特性 import (旧版) use (新版) 作用域 全局作用域(变量/混合易冲突) 局部作用域(需通过…...
基于单片机ht7038 demo
单片机与ht7038 demo,三相电能表,电量数据包括电流电压功能,采用免校准方法 列表 ht7038模块/CORE/core_cm3.c , 17273 ht7038模块/CORE/core_cm3.h , 85714 ht7038模块/CORE/startup_stm32f10x_hd.s , 15503 ht7038模块/CORE/startup_stm32…...
基于YOLO11深度学习的胃肠道息肉智能检测分割与诊断系统【python源码+Pyqt5界面+数据集+训练代码】深度学习实战、目标分割、人工智能
《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…...
CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构
CViewState::InitializeColumns函数分析之_hdsaColumnStates的结构 // Set up saved column state only if the saved state // contains information other than "nothing". if (_hdsaColumnStates) { UINT cStates DSA_GetItemCount(_hdsaColumnS…...
商淘云中英文外贸电商系统,助力传统企业杨帆出海
在全球经济一体化的浪潮下,传统企业纷纷渴望拓展海外市场,寻求新的增长机遇。然而,语言障碍、复杂的跨境交易流程、多元的支付体系以及迥异的消费习惯,如同重重壁垒,阻碍着传统企业扬帆出海的步伐。此时,商…...
--- Mysql事务 ---
什么是事务 因为事务的存在,可以使得多条sql语句一起执行,并且只有全部执行成功或全部执行失败俩种结果,保证了数据的安全,也使得这些sql语句拥有了原子性,隔离性,一致性,持久性(AC…...
FreeRTOS第7篇:内存的“精打细算”——堆管理与内存分配
文/指尖动听知识库-星愿 文章为付费内容,商业行为,禁止私自转载及抄袭,违者必究!!! 文章专栏:深入FreeRTOS内核:从原理到实战的嵌入式开发指南 引言:嵌入式系统的“仓库管理员” 想象你是一家繁忙仓库的管理员:货物(内存块)需要被高效存取,货架(堆空间)必须避免…...
有效市场理论(Efficient Market Hypothesis,简称 EMH):市场真的“有效”吗?中英双语
有效市场理论(EMH):市场真的“有效”吗? 1. 什么是有效市场理论? 📌 有效市场理论(Efficient Market Hypothesis,简称 EMH) 是由美国经济学家 尤金法玛(Eug…...
STM32 HAL库USART串口中断编程:演示数据丢失
目录 一、开发环境 二、配置STM32CubeMX 三、代码实现与部署 四、运行结果: 五、注意事项 上面讨论过,HAL_UART_Receive最容易丢数据了,可以考虑用中断来实现,但是HAL_UART_Receive_IT还不能直接用,容易数据丢失,实际工作中不会这样用,本文介绍STM32F103 HAL库函数…...
MapReduce的工作原理及其在大数据处理中的应用
MapReduce是一种由Google提出的面向大数据并行处理的计算模型、框架和平台,它通过将复杂的数据处理任务分解为两个简单的阶段——Map(映射)和Reduce(归约),实现了分布式并行计算,极大地提高了数…...
python学opencv|读取图像(六十六)使用cv2.minEnclosingCircle函数实现图像轮廓圆形标注
【1】引言 前序学习过程中,已经掌握了使用cv2.boundingRect()函数实现图像轮廓矩形标注,相关文章链接为:python学opencv|读取图像(六十五)使用cv2.boundingRect()函数实现图像轮廓矩形标注-CSDN博客 这篇文章成功在图…...
SpringCloud系列教程:微服务的未来(二十四)Direct交换机、Topic交换机、声明队列交换机
前言 在现代消息队列系统中,交换机是实现消息传递和路由的核心组件。本文将重点探讨三种常见的交换机类型:Direct交换机、Topic交换机和声明队列交换机。通过对这三种交换机的详细分析,我们将学习它们的工作原理、应用场景以及如何在实际项目…...
云创智城充电系统:基于 SpringCloud 的高可用、可扩展架构详解-多租户、多协议兼容、分账与互联互通功能实现
在新能源汽车越来越普及的今天,充电基础设施的管理和运营变得越来越重要。云创智城充电系统,就像一个超级智能管家,为新能源充电带来了全新的解决方案,让充电这件事变得更方便、更高效、更安全。 一、厉害的技术架构,让…...
iOS事件传递和响应
背景 对于身处中小公司且业务不怎么复杂的程序员来说,很多技术不常用,你可能看过很多遍也都大致了解,但是实际让你讲,不一定讲的清楚。你可能说,我以独当一面,应对自如了,但是技术的知识甚多&a…...
时间序列分析(四)——差分运算、延迟算子、AR(p)模型
此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 时间序列分析(三)——白噪声检验 一、差分运算 差分运算的定义:差分运算是一种将非平稳时间序列转换…...
OpenCV机器学习(6)朴素贝叶斯分类器(Naive Bayes Classifier)cv::ml::NormalBayesClassifier的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::ml::NormalBayesClassifier 是 OpenCV 机器学习模块中的一部分,用于实现朴素贝叶斯分类器(Naive Bayes Classifier&a…...
Nginx 反向代理 MinIO 及 ruoyi-vue-pro 配置 MinIO 详解
目录 前言1. nginx配置2. 配置minio(Demo要点)3. 实战要点3.1 前端配置3.2 后端配置3.3 应用前言 如何在ruoyi-vue-pro上使用minio上传文件,通过Ngnix再次转发路径 相关的minio推荐阅读: 云服务器中的MinIO 配置 HTTPS 过程(图文)详细分析Java中的Minio类各API(附win配…...
python黑帽子第二版netcat分析
源码 import argparse import socket import shlex import subprocess import sys import textwrap import threadingdef execute(cmd):cmd cmd.strip()if not cmd:returnoutput subprocess.check_output(shlex.split(cmd), stderrsubprocess.STDOUT)return output.decode()…...
【Android开发】华为手机安装包安装失败“应用是非正式版发布版本,当前设备不支持安装”问题解决
问题描述 我们将Debug版本的安装包发送到手机上安装,会发现华为手机有如下情况 解决办法 在文件gradle.properties中粘贴代码: android.injected.testOnlyfalse 最后点击“Sync now”,等待重新加载gradle资源即可 后面我们重新编译Debug安装…...
dify实现分析-rag-文档内容提取
dify实现分析-rag-文档内容提取 概述 在文章《dify实现原理分析-上传文件创建知识库总体流程》中已经介绍了,文件上传后索引构建的总体流程,本文介绍其中的“Extract: 提取文档内容:这里会按段落或整页来获取文档内容”步骤的实现。 这一步的主要功能…...
腾讯云API+chatbox
腾讯云的限时免费接口:知识引擎原子能力 对话-原子能力相关接口-API 中心-腾讯云 本接口调用DeepSeek系列模型限时免费。即日至北京时间2025年2月25日23:59:59,所有腾讯云用户均可享受DeepSeek-V3、DeepSeek-R1模型限时免费服务,单账号限制接…...
sql查询null的时候
SELECT * FROM scm_sku_stock WHERE SKU_CODEGOS2310251620452226 and CONSIGNOR_USER_CODE is null 在 SQL 中,NULL 是一个特殊的值,表示“没有值”或“未知值”。在比较时,NULL 不能直接用 或 ! 来比较。相反,你需要使用 IS N…...
BitLocker技巧与经验
初级代码游戏的专栏介绍与文章目录-CSDN博客 BitLocker是windows默认的存储加密方案,用好了很安全,用错了完蛋。以下来自我的使用经验。 目录 可以加密移动设备 可以加密操作系统分区 TPM是个坑 一定要用微软账号登录并将密钥保存在账号里 不建议使…...
Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档
Electron 客户端心跳定时任务调度库调研文档 - Node.js 任务调度库技术调研文档 本文将对七个流行的定时任务调度库:node-cron、rxjs、bull、node-schedule、agenda、bree、cron。这些库都可以用来处理定时任务,但它们的特点和适用场景有所不同。我们将从…...
数据结构——二叉树(2025.2.12)
目录 一、树 1.定义 (1)树的构成 (2)度 2.二叉树 (1)定义 (2)二叉树的遍历 (3)遍历特性 二、练习 1.二叉树 (1)创建二叉树…...