当前位置: 首页 > article >正文

python基础day04

1.两大编程思想的异同点:

面向过程面向对象
区别事物比较简单,可以用线性的思维去解决事物比较复杂,使用简单的线性思维无法解决
共同点面向过程和面向对象都是解决实际问题的一种思维方式
二者相辅相成,并不是对立的解决复杂问题,通过面向对象方式便于我们从宏观上把握事物之间复杂的关系,方便我们分析整个系统,具体到微观操作,仍然使用面向过程方式来处理

2.类:

  • 定义:是由N多个对象抽取出“像"的属性和行为从而归纳总结出来的一种类别。
  • 创建类的语法结构:(注:类名首字母要大写)

         class 类名():                          或                               class 类名:

               pass                                                                            pass

  • 创建对象的语法格式:

         对象名=类名()

  • 类的组成:

        (1)类属性:直接定义在类中,方法外的变量

        (2)实例属性:定义在__init__方法中,使用self打点的变量

        (3)实例方法:定义在类中的函数,而且自带参数self

        (4)静态方法:使用装饰器@staticmethod修饰的方法

        (5)类方法:使用装饰器@classmethod修饰的方法

class Student:school="北京外国语学校"            # 类属性# 初始方法def __init__(self,xm,age):self.name=xm                # 实例属性self.age=age                # 实例属性# 实例方法def show(self):print(f"我叫{self.name},今年{self.age}岁了")# 静态方法@staticmethoddef sm():print("静态方法不能调用实例属性和实例方法")# 类方法@classmethoddef cm(cls):print("类方法不能调用实例属性和实例方法")# 创建类的对象
stu=Student("杨娜娜",18)
print(Student.school)                     # 北京外国语学校 
print(stu.name,stu.age)                   # 杨娜娜 18
stu.show()                                # 我叫杨娜娜,今年18岁了
Student.sm()                              # 静态方法不能调用实例属性和实例方法
Student.cm()                              # 类方法不能调用实例属性和实例方法
  • 注意 :

       实例属性和实例方法是对象名打.调用。

       类属性,类方法,静态方法是类名打.调用。

       静态方法和类方法不能调用实例属性和实例方法。

  • 动态绑定属性和方法:

       对象名.属性名=属性值

       对象名.实例方法=方法名

stu.gender="男"
def introduce():print("动态绑定的实例方法")
stu.fun=introduce

3.面向对象的三大特征:

  • 封装:隐藏内部细节,对外提供操作方式。
  • 继承:是在函数调用时,使用“形参名称=值”的方式进行传参,传递参数顺序可以与定义时参数的顺序不同。
  • 多态:是在函数定义时,直接对形式参数进行赋值,在调用时如果该参数不传值,将使用默认值如果该参数传值,则使用传递的值。

4.类的权限控制:

  • 权限控制:是通过对属性或方法添加单下划线、双下划线以及首尾双下划线来实现。
  • 单下划线开头:以单下划线开头的属性或方法表示protected受保护的成员,这类成员被视为仅供内部使用,允许类本身和子类进行访问,但实际上它可以被外部代码访问。
  • 双下划线开头:表示private私有的成员,这类成员只允许定义该属性或方法的类本身进行访问。
  • 首尾双下划线:一般表示特殊的方法。
class Student:def __init__(self,name,age,gender):self._name=name        # self._name是受保护的,只能本类和子类访问self.__age=age         # self.__age表示私有的,只能类本身去访问self.gender=gender     # 普通的实例属性,类的内部,外部以及子类都可以访问def _fun1(self):           # 受保护的print("子类及本身可以访问")def __fun2(self):          # 私有的print("只有定义的类可以访问")def show(self):            # 普通的实例方法self._fun1()           # 类本身访问受保护的方法self.__fun2()          # 类本身访问私有方法print(self._name)      # 受保护的实例属性print(self.__age)      # 私有的实例属性stu=Student("张三",18,"女")
print(stu._name)
# print(stu.__age)            # 不能访问
stu._fun1()                   # 子类及本身可以访问
# stu.__fun2()                # 不能访问# 访问私有属性和私有方法
print(stu._Student__age)      # 18
stu._Student__fun2()          # 只有定义的类可以访问

5.类中属性的设置:

  • 使用@property修改方法,将方法转成属性使用
  • 使用@gender.setter设置成可写属性
class Student:def __init__(self,name,gender):self.name = nameself.__gender = gender# 使用@property修改方法,将方法转成属性使用@propertydef gender(self):return self.__gender# 将gender设置成可写属性@gender.setterdef gender(self,value):self.__gender = valuestu=Student("张三","男")
print(f"{stu.name}的性别是{stu.gender}")      # 张三的性别是男
stu.gender="女"
print(f"{stu.name}的性别是{stu.gender}")      # 张三的性别是女

6.类的继承:

  • 继承:在Python中一个子类可以继承N多个父类,一个父类也可以拥有N多个子类,如果一个类没有继承任何类,那么这个类默认继承的是object类。
  • 语法结构:

        class 类名(父类1,父类2....父类N):

                   pass  

# 父类
class Person:def __init__(self,name,age):self.name = nameself.age = agedef show(self):print(f"姓名:{self.name},年龄:{self.age}")# 子类1
class Student(Person):def __init__(self,name,age,stuno):super().__init__(name,age)self.stuno = stuno# 子类2
class Doctor(Person):def __init__(self,name,age,department):super().__init__(name,age)self.department = departmentstu=Student("张三",19,"1001")
stu.show()                                      # 姓名:张三,年龄:19 
doc=Doctor("李四",20,"外科")
doc.show()                                      # 姓名:李四,年龄:20

7.类的多继承:

class FatherA:def __init__(self,name):self.name = namedef showA(self):print("父类A中的方法")class FatherB:def __init__(self,age):self.age = agedef showB(self):print("父类B中的方法")class Son(FatherA,FatherB):def __init__(self,name,age,gender):FatherA.__init__(self,name)FatherB.__init__(self,age)self.gender = genderson=Son("张三",19,"女")
son.showA()
son.showB()

8.类中方法重写:

  • 子类继承了父类就拥有了父类中公有成员和受保护的成员。
  • 父类的方法法并不能完全适合子类的需要求这个时候子类就可以重写父类的方法。
  • 子类在重新父类的方法时,要求方法的名称必须与父类方法的名称相同,在子类重写后的方法中可以通过super().xxx()调用父类中的方法。
class Person:def __init__(self, name, age):self.name = nameself.age = agedef show(self):print(f"我是{self.name},今年{self.age}岁了")class Doctor(Person):def __init__(self, name, age,department):super().__init__(name, age)self.department = departmentdef show(self):super().show()print(f"我的科室是{self.department}")doc=Doctor("张三",20,"外科")       # 创建对象时会自动调用__init__方法
doc.show()

9.object类:

  • object:所有类直接或间接的父类;所有类都拥有object类的属性和方法。
  • object类中特殊方法:
object类中特殊的方法功能描述
__new__()由系统调用,用于创建对象
__init__()创建对象时手动调用,用于初始化对象属性值
__str__()对象的描述,返回值是str类型,默认输出对象的内存地址。
  • 特殊方法:
运算符特殊方法功能描述
+__add__()执行加法运算
-__sub__()执行减法运算
く,<=,==__It__(),__le__(),__eq__()执行比较运算
>,>=,!=

__gt__(),__ge__(),__ne__()

执行比较运算
*,/__mul__(),__truediv__()执行乘法运算,非整除运算
%, //__mod__(),__floordiv__()执行取余运算,整除运算
**__pow__()执行取余运算,整除运算
a=10
b=20
print(a+b)               # 30
print(a.__add__(b))      # 30
  • 特殊属性:
特殊属性功能描述
obj.__dict__对象的属性字典
obj.__class__对象所属的类
class.__bases__类的父类元组
class.__base__类的父类,如果继承了N多个父类,只显示第一个父类
class.__mro__类的层次结构
class.__subclasses__()类的子类列表
class A:pass
class B:pass
class C(A, B):def __init__(self, name, age):self.name = nameself.age = age
a=A()
b=B()
c=C("张三",20)
print("对象a的属性字典:",a.__dict__)       # {}
print("对象b的属性字典:",b.__dict__)       # {}
print("对象c的属性字典:",c.__dict__)       # {'name': '张三', 'age': 20}print("对象a所属的类:",a.__class__)        # <class '__main__.A'>
print("对象b所属的类:",b.__class__)        # <class '__main__.B'>
print("对象c所属的类:",c.__class__)        # <class '__main__.C'>

10.类的深拷贝与浅拷贝:

  • 变量的赋值:只是形成两个变量,实际上还是指向同一个对象
  • 浅拷贝:拷贝时,对象包含的子对象内容不拷贝,因此源对象与拷贝对象会引用同一个子对象。(源对象和拷贝对象的内存地址不一样,子对象的内存地址一样)
  • 深拷贝:使用copy模块的deepcopy函数,递归拷贝对象中包含的子对象,源对象和拷贝对象所有的子对象也不相同。(源对象和拷贝对象的内存地址不一样,子对象的内存地址也不一样)
class CPU:pass
class Disk:pass
class Computer:def __init__(self, cpu, disk):self.cpu = cpuself.disk = disk
cpu = CPU()
disk = Disk()
com=Computer(cpu, disk)
# 变量赋值
com1=com
print(com,com.cpu,com.disk)      # <__main__.Computer object at 0x0000027CC583CAD0> <__main__.CPU object at 0x0000027CC579A5D0> <__main__.Disk object at 0x0000027CC5846FD0>
print(com1,com1.cpu,com1.disk)   # <__main__.Computer object at 0x0000027CC583CAD0> <__main__.CPU object at 0x0000027CC579A5D0> <__main__.Disk object at 0x0000027CC5846FD0>import copy
# 浅拷贝
com2=copy.copy(com)
print(com2,com2.cpu,com2.disk)   # <__main__.Computer object at 0x0000024AE875D5D0> <__main__.CPU object at 0x0000024AE8766FD0> <__main__.Disk object at 0x0000024AE875CAD0># 深拷贝
com3=copy.deepcopy(com)
print(com3,com3.cpu,com3.disk)   # <__main__.Computer object at 0x0000029EF31C5290> <__main__.CPU object at 0x0000029EF34CD450> <__main__.Disk object at 0x0000029EF34CDD90>

11.模块:

  • 简介:

       (1)在Python中一个后缀名为.py的Python文件就是一个模块。

       (2)模块中可以定义函数、类等。

       (3)模块也可以避免函数、类、变量等名称相冲突的问题。

       (4)模块不仅提高了代码的可维护性,同时还提高了代码的可重用性。

       (5)在给模块命名的时候要求全部使用小写字母,多个单词之间使用下划线进行分隔。

       (6)如果自定义模块名称与系统内置模块名称相同,那么在导入时会优先导入自定义的模块。

  • 模块的分类:

       (1)系统内置模块:由开发人员编写好的模块,在安装Python解释器时一同安装成计算机。

       (2)自定义模块:一个以.py结尾的文件就是一个模块,新建Python文件,实际上就是在新建模块。

       自定义模块的作用:一是规范代码,将功能相同的函数、类等封装到一个模块中,让代码更易于阅读;另外一个目的与系统内置模块相同,即可以被其它模块调用,提高开发的效率。

  • 模块的导入:

      方式一 : import 模块名称 [as 别名]

      方式二 : from 模块名称 import 变量/函数/类/*

# 方式一:
import my_info as info
print(info.name)
info.introduce()# 方式二:
# from my_info import name,introduce
from my_info import *
print(name)
introduce()

12.Python中的包:

  • 简介:含有_init_.py文件的文件夹(目录),可以避免模块名称相冲突的问题。
  • 包的导入:

       方式一 : import 包名.模块名

       方式二 : from 包名 import 模块名

       方式三 : from 包名.模块名 import 函数/变量等

# 方式一:import 包名.模块名
import admin.my_admin as admin     
admin.info()# 方式二: from 包名 import 模块名
from admin import my_admin as my   
my.info()# 方式三: from 包名.模块名 import 函数/变量等
# from admin.my_admin import info
from admin.my_admin import *
info()
  • 主程序运行:

        if __name__ == '__main__':

             pass

13.Python中常用的内置模块:

     在安装Python解释器时与解释器一起安装进来的模块被称为系统内置模块,也被称为标准模块或标准库。

标准库名称功能描述
os模块与操作系统和文件相关操作有关的模块
re模块用于在Python的字符串中执行正则表达式的模块
random模块用于产生随机数的模块
json模块用于对高维数据进行编码和解码的模块
time模块与时间相关的模块
datetime模块与日期时间相关的模块,可以方便的显示日期并对日期进行运算

14.random模块:

      random模块是Python中用于产生随机数的标准库。

函数名称功能描述
seed(x)初始化给定的随机数种子,默认为当前系统时间
random()产生一个[0.0,1.0)之间的随机小数
randint(a,b)生成一个[a,b]之间的整数
randrange(m,n,k)生成一个[m,n)之间步长为k的随机整数
uniform(a,b)生成一个[a,b]之间的随机小数
choice(seq)从序列中随机选择一个元素
shuffle(seg)将序列seq中元素随机排列,返回打乱后的序列

15.time模块:

     time模块是Python中提供的用于处理时间的标准库,可以用来进行时间处理、时间格式化和计时等。

函数名称功能描述
time()获取当前时间戳
localtime(sec)获取指定时间戳对应的本地时间的struct time对象
ctime()获取当前时间戳对应的易读字符串
strftime()格式化时间,结果为字符串
strptime()提取字符串的时间,结果为struct time对象
sleep(sec)休眠sec秒
格式化字符串
格式化字符串日期/时间取值范围
%Y年份0001~9999
%m月份01~12
%B月名January~December
%d日期01~31
%A星期Monday~Sunday
%H小时(24h制)小时(24h制)
%I小时(12h制)01~12
%M分钟00~59
%S00~59

相关文章:

python基础day04

1.两大编程思想的异同点: 面向过程面向对象区别事物比较简单&#xff0c;可以用线性的思维去解决事物比较复杂&#xff0c;使用简单的线性思维无法解决共同点面向过程和面向对象都是解决实际问题的一种思维方式二者相辅相成&#xff0c;并不是对立的解决复杂问题&#xff0c;通…...

嵌入式学习--江协stm32day1

失踪人口回归了&#xff0c;stm32的学习比起51要慢一些&#xff0c;因为涉及插线&#xff0c;可能存在漏插&#xff0c;不牢固等问题。 相对于51直接对寄存器的设置&#xff0c;stm32因为是32位修改起来比较麻烦&#xff0c;江协课程是基于标准库的&#xff0c;是对封装函数进…...

湖北理元理律师事务所:债务化解中的心理重建与法律护航

专业法律顾问视角 一、债务危机的双重属性&#xff1a;法律问题与心理困境 在对173名债务人的调研中发现&#xff1a; 68%存在焦虑引发的决策障碍&#xff08;如不敢接听银行电话&#xff09; 42%因羞耻感隐瞒债务导致雪球效应 湖北理元理律师事务所创新采用法律-心理双轨…...

constexpr 是 C++11 引入的关键字

constexpr 是 C11 引入的关键字&#xff0c;用于在编译期进行常量表达式计算&#xff0c;从而提高程序性能和安全性。以下是其核心作用和用法&#xff1a; 一.作用 1编译期 计算 constexpr 变量或函数的值在编译时确定&#xff0c;避免运行时计算开销。例如&#xff0c;数组大…...

【更新中】(文档+代码)基于推荐算法和Springboot+Vue的购物商城

概要设计 本节规划和定义了Woodnet桌游电商平台的软件概要设计说明书&#xff0c;描述了软件的总体设计、接口设计、运行设计、系统数据库结构设计以及系统出错处理设计&#xff0c;从整体上说明了系统设计的结构层次、处理流程、系统用例等。 本系统是一个独立的系统&#x…...

六种高阶微分方程的特解(原创:daode3056)

高阶微分方程的通解是指包含所有可能解的解的表达式。对于一个 n 阶微分方程&#xff0c;其通解通常包含 n 个任意常数。这些任意常数可以通过初始条件或边界条件来确定。高阶微分方程的特解是指在通解中&#xff0c;特定地选择了一组常数&#xff0c;使得解满足给定的初始条件…...

【C++11(上)】—— 我与C++的不解之缘(三十)

一、C11 这里简单了解一下C发展好吧&#xff1a; C11是C的第二个大版本&#xff0c;也是自C98以来最重要的一个版本。 它引入了大量的更改&#xff0c;它曾被人们称为C0x&#xff0c;因为它被期待在2010年之前发布&#xff1b;但在2011年8月12日才被采纳。 C03到C11花了8年时间…...

【多线程初阶】wait() notify()

文章目录 协调多个线程间的执行顺序join 和 wait 区别sleep 和 wait 区别 wait()方法线程饿死调用 wait()唤醒 wait() notify()方法wait() 和 notify() 需对同一对象使用确保先 wait ,后 notify多个线程在同一对象上wait notify随机唤醒一个wait notifyAll()方法应用 wait() 和…...

安全-JAVA开发-第二天

Web资源访问的流程 由此可见 客户访问JAVA开发的应用时 会先通过 监听器&#xff08;Listener&#xff09;和 过滤器&#xff08;Filter&#xff09; 今天简单的了解下这两个模块的开发过程 监听器&#xff08;Listener&#xff09; 主要是监听 我们触发了什么行为 并进行反应…...

Python基础:文件简单操作

&#x1f343;引言 手把手带你快速上手Python Python基础专栏 一、&#x1f343;文件是什么 变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失。 要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在文件中保存。 通过文件的后缀名, 可以看…...

深度学习项目之RT-DETR训练自己数据集

RT-DETR 1.模型介绍&#x1f4cc; 什么是 RT-DETR &#xff1f;&#x1f4d6; 核心改进点&#x1f4ca; 结构示意&#x1f3af; RT-DETR 优势⚠️ RT-DETR 缺点&#x1f4c8; 应用场景&#x1f4d1; 论文 & 官方仓库2.模型框架3.Yaml配置文件4.训练脚本5.训练完成截图6.总结…...

以太网帧结构和封装【二】-- IP头部信息

1字节 byte 8比特 bit 【位和比特是同一个概念】 比特/位&#xff0c;字节之间的关系是&#xff1a; 位&#xff08;Bit&#xff09; 中文名&#xff1a;位&#xff08;二进制位&#xff09;。 英文名&#xff1a;Bit&#xff08;Binary Digit 的缩写&#xff09;。 含义&…...

mysql 悲观锁和乐观锁(—悲观锁)

适合悲观锁的使用场景&#xff1a; 悲观锁更适合在&#xff0c;写操作较多、并发冲突高、业务需要强一致性等场景下使用悲观锁。 如何使用悲观锁&#xff1a; 悲观锁主要通过以下两个 SQL语句实现&#xff1a; 1、SELECT...FOR UPDATE; 这个语句会在所查询中的数据行上设置排…...

Promtail采集服务器本地日志存储到Loki

✅ 一、前提条件 已安装 Loki 服务 日志文件目录可访问&#xff08;如 /var/log&#xff09; 具备 sudo 权限 &#x1f9e9; 二、下载 Promtail 二进制文件 # 替换为你想要的版本 VERSION"3.5.1"# 创建目录 sudo mkdir -p /opt/promtail cd /opt/promtail# 下载并…...

python第31天打卡

import numpy as np from tensorflow import keras from tensorflow.keras import layers, optimizers, utils, datasets# 数据加载和预处理函数 def load_and_preprocess_data():(x_train, y_train), (x_test, y_test) datasets.mnist.load_data()# 重塑并归一化图像数据x_tr…...

4.1 HarmonyOS NEXT原生AI能力集成:盘古大模型端侧部署与多模态交互实战

HarmonyOS NEXT原生AI能力集成&#xff1a;盘古大模型端侧部署与多模态交互实战 在HarmonyOS NEXT的全场景生态中&#xff0c;原生AI能力成为连接设备、服务与用户的核心纽带。通过盘古大模型端侧轻量化部署、多模态交互技术及环境感知系统&#xff0c;开发者能够构建"主…...

学习STC51单片机27(芯片为STC89C52RCRC)

每日一言 你读过的书、走过的路、流过的汗&#xff0c;终将成就独一无二的你。 硬件&#xff1a;LCD1602液晶显示 非标协议外设 概述 LCD1602&#xff08;Liquid Crystal Display&#xff09;是一种工业字符型液晶&#xff0c;能够同时显示 1602 即 32 字符(16列两行) 那我…...

PAT-甲级JAVA题解(更新中...)

使用JAVA语言进行算法练习,但是有些会出现运行超时情况. 题目链接A1001A1001-PAT甲级JAVA题解 AB FormatA1005A1005-PAT甲级JAVA题解 Spell It RightA1006A1006-PAT甲级JAVA题解 Sign In and Sign OutA1011A1011-PAT甲级JAVA题解World Cup BettingA1012A1012 PAT甲级JAVA题解 …...

Deep Chat:重塑人机对话边界的开源智能对话框架—— 让下一代AI交互无缝融入你的应用

在AI助手泛滥的今天&#xff0c;开发体验碎片化、功能扩展性差、多模态支持不足成为行业痛点。由开发者Ovidijus Parsiunas发起的开源项目 Deep Chat&#xff08;https://github.com/OvidijusParsiunas/deep-chat&#xff09;&#xff0c;正以模块化设计 全栈兼容性颠覆传统聊…...

DA14531_beacon_大小信标设备开发

蓝牙信标是一款通过广播指定蓝牙信号&#xff0c;实现信标信号扫描、识别和获得辅助信息的电子产品。 不同品名的蓝牙信标采用相同的 UUID 和广播信号格式&#xff0c;但在 MAC 地址、工作寿命、体积和广播周期上有所差异。 小武编程巧用DA14531开发一款蓝牙信标....

【算法训练营Day06】哈希表part2

文章目录 四数相加赎金信三数之和四数之和 四数相加 题目链接&#xff1a;454. 四数相加 II 这个题注意它只需要给出次数&#xff0c;而不是元组。所以我们可以分治。将前两个数组的加和情况使用map存储起来&#xff0c;再将后两个数组的加和情况使用map存储起来&#xff0c;ke…...

Word双栏英文论文排版攻略

word写双栏英文论文的注意事项 排版首先改字体添加连字符还没完呢有时候设置了两端对齐会出现这样的情况&#xff1a; 公式文献 等我下学期有时间了&#xff0c;一定要学习Latex啊&#xff0c;word写英文论文&#xff0c;不论是排版还是公式都很麻烦的&#xff0c;而Latex一键就…...

乡村三维建模 | 江苏农田无人机建模案例

测绘是农田建设的基础工作&#xff0c;测绘的质量和效率直接影响农田建设的进度和成果。传统的人工测量、地面测量等测绘手段&#xff0c;存在效率低、精度差、受环境影响大、成本高等缺点&#xff0c;难以满足高标准农田建设的要求。而无人机倾斜摄影技术具有高效、精确、灵活…...

2025 5 月 学习笔记

计算高斯半径&#xff0c;用于生成高斯热图 这个的意义是什么 有什么作用&#xff1f; 14 核心意义&#xff1a;平衡定位精度与检测鲁棒性 在基于热图的目标检测方法&#xff08;如CenterNet、CornerNet等&#xff09;中&#xff0c;计算高斯半径的核心意义在于​​在精确…...

SpringBoot(七) --- Redis基础

目录 前言 一、Redis入门 二、Redis常用数据类型 三、Redis常用命令 1. 字符串操作命令 2. 哈希操作命令 3. 列表操作命令 4. 集合操作命令 5. 有序集合操作命令 6.通用命令 四、在Java中操作Redis 前言 Redis是一个基于内存的key-value结构数据库&#xff0c;有以下…...

Oracle 故障实例 - 通过备份恢复到某时间点 故障恢复

一、环境和故障描述 1.数据库版本&#xff1a;oracle 11g , linux &#xff1b;OA系统的后台数据库。 2. 同事在做正式机数据迁移到测试机时&#xff0c;不小心删除了正式机的数据。 导致大量生产数据丢失&#xff0c;系统故障。 3.万幸的是正式机每日都做了数据备份&#x…...

滑动智能降级:Glide优化加载性能的黑科技

简介 在移动应用开发中,图片加载性能直接关系到用户体验,尤其在列表快速滑动场景下,如何平衡流畅度与流量消耗成为开发者面临的核心挑战。本文将深入探讨Glide库的智能降级技术,通过滑动速度动态调整图片加载策略,实现流量节省35%、首屏加载速度提升40%的显著效果。我们将…...

【前端并发请求控制:必要性与实现策略】

前端并发请求控制&#xff1a;必要性与实现策略 一、引言 在现代 Web 开发中&#xff0c;处理大量异步请求是一个常见场景。虽然浏览器和服务器都有其并发限制机制&#xff0c;但前端实现并发控制仍然具有其独特的价值和必要性。本文将深入探讨这个话题。 二、现有的并发限制…...

LeetCode 139. 单词拆分(Word Break) - 动态规划深度解析

文章目录 问题描述动态规划解法解法核心思路完整代码实现关键代码解析1. 数据结构初始化2. 动态规划数组3. 核心循环逻辑4. 子串区间理解(关键)示例演算复杂度分析算法优化点总结本文详细解析LeetCode 139题"单词拆分"的动态规划解法,涵盖核心思路、代码实现、区间…...

@Prometheus动态配置管理-ConsulConfd

文章目录 动态配置管理 Consul Confd**一、目标****二、架构组件****三、环境准备****四、配置 Consul**1. 注册监控目标&#xff08;服务发现&#xff09;2. 存储告警规则&#xff08;KV 存储&#xff09; **五、配置 Confd**1. 监控目标模板配置2. 告警规则模板配置 **六、配…...