Python编程整理汇总(基础汇总版)
1. 基础语法
1.1 变量与数据类型
整数:
a = 10
浮点数:
b = 3.14
字符串:
c = "Hello, World!"
布尔值:
d = True
列表:
e = [1, 2, 3, 4, 5]
元组:
f = (1, 2, 3)
字典:
g = {"name": "Alice", "age": 25}
集合:
h = {1, 2, 3, 4, 5}
1.2 控制结构
-
if
语句:if a > 5: print("a is greater than 5")
-
for
循环:for i in range(5): print(i)
-
while
循环:
count = 0 while count < 5:print(count)count += 1
1.3 函数与模块
函数:
def greet(name): return f"Hello, {name}!"
模块:
# mymodule.py def add(x, y):return x + y# 在另一个文件中 from mymodule import add print(add(2, 3))
1.4 输入输出
input()
:name = input("Enter your name: ") print(f"Hello, {name}!")
print()
:print("This is a print statement.")
2. 面向对象编程
2.1 类与对象
类:
class Dog:def __init__(self, name, age):self.name = nameself.age = agedef bark(self):return "Woof!"对象:
my_dog = Dog("Buddy", 3) print(my_dog.name) print(my_dog.bark())
2.2 继承与多态
继承:
class Animal:def speak(self):passclass Dog(Animal):def speak(self):return "Woof!"多态:
def animal_speak(animal): print(animal.speak()) animal_speak(Dog())
2.3 封装与抽象
-
封装:
class BankAccount:def __init__(self, balance=0):self.__balance = balance # 私有属性def deposit(self, amount):self.__balance += amountdef get_balance(self):return self.__balance
-
抽象:
from abc import ABC, abstractmethodclass Shape(ABC):@abstractmethoddef area(self):passclass Circle(Shape):def __init__(self, radius):self.radius = radiusdef area(self):return 3.14 * self.radius ** 2
3. 文件操作
3.1 打开与关闭文件:
with open('example.txt', 'w') as file:file.write("Hello, World!")
3.2 读取与写入文件:
with open('example.txt', 'r') as file:content = file.read()print(content)
4. 异常处理
4.1try
、except
、else
、finally
语句:
try:result = 10 / 0
except ZeroDivisionError:print("Cannot divide by zero!")
else:print("Division successful!")
finally:print("This block is always executed.")
4.2 自定义异常:
#自定义异常class CustomError(Exception):passtry:raise CustomError("This is a custom error message.")
except CustomError as e:print(e)
5. 高级特性
5.1 生成器与迭代器:
def my_generator():yield 1yield 2yield 3gen = my_generator()
for value in gen:print(value)
5.2 装饰器:
def my_decorator(func):def wrapper():print("Something is happening before the function is called.")func()print("Something is happening after the function is called.")return wrapper@my_decorator
def say_hello():print("Hello!")say_hello()
5.3 上下文管理器:
class MyContextManager:def __enter__(self):print("Entering the context.")return selfdef __exit__(self, exc_type, exc_val, exc_tb):print("Exiting the context.")with MyContextManager() as cm:print("Inside the context.")
5.4 闭包:
def make_multiplier(factor):def multiplier(number):return number * factorreturn multipliertimes_two = make_multiplier(2)
print(times_two(5)) # 输出: 10
5.5 列表推导式(List Comprehensions):
squares = [x**2 for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
5.6 字典推导式(Dictionary Comprehensions):
square_dict = {x: x**2 for x in range(5)}
print(square_dict) # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}
5.7 集合推导式(Set Comprehensions):
unique_squares = {x**2 for x in [1, -1, 2, -2, 3]}
print(unique_squares) # 输出: {1, 4, 9}
5.8 枚举(Enumerations):
from enum import Enumclass Color(Enum):RED = 1GREEN = 2BLUE = 3print(Color.RED) # 输出: Color.RED
print(Color.RED.value) # 输出: 1
5.9 类型注解(Type Annotations):
def greet(name: str) -> str:return f"Hello, {name}!"print(greet("Alice")) # 输出: Hello, Alice!
6. 标准库与第三方库
在Python中,标准库提供了许多内置模块,用于执行各种常见任务。此外,还有大量的第三方库可供使用,这些库扩展了Python的功能,使其能够处理更复杂的问题。
6.1 标准库
-
string
库:提供了一系列关于字符串的常量,比如字母、数字、标点符号等。import string print(string.ascii_letters) # 打印所有ASCII字母(小写和大写) print(string.digits) # 打印所有数字 print(string.punctuation) # 打印所有标点符号
-
json
库:用于处理JSON数据,包括编码(序列化)和解码(反序列化)Python对象。import json data = {"name": "Alice", "age": 25, "city": "New York"} json_data = json.dumps(data) # 将Python对象编码为JSON字符串 print(json_data) parsed_data = json.loads(json_data) # 将JSON字符串解码为Python对象 print(parsed_data)
-
random
库:用于生成随机数。import random print(random.randint(1, 10)) # 生成1到10之间的随机整数 print(random.random()) # 生成0到1之间的随机浮点数 print(random.choice(['apple', 'banana', 'cherry'])) # 从列表中随机选择一个元素
-
re
库:提供了正则表达式的支持,用于字符串匹配和替换。import re text = "Hello, world! This is a test." matches = re.findall(r'\b\w+\b', text) # 匹配并打印所有单词 print(matches) replaced_text = re.sub(r'\s+', '_', text) # 替换所有空格为下划线 print(replaced_text)
-
os
库:用于与操作系统交互,比如文件路径操作、环境变量访问等。import os print(os.getcwd()) # 打印当前工作目录 os.makedirs('new_directory', exist_ok=True) # 创建目录 print(os.listdir('.')) # 列出目录内容 os.chdir('new_directory') # 改变当前工作目录 file_size = os.path.getsize('some_file.txt') if os.path.exists('some_file.txt') else 0 print(file_size) # 获取文件大小 os.remove('some_file.txt') if os.path.exists('some_file.txt') else None # 删除文件 os.rmdir('new_directory') if os.path.exists('new_directory') and not os.listdir('new_directory') else None # 删除空目录
-
hashlib
库:用于生成安全哈希和消息摘要。import hashlib md5_hash = hashlib.md5() md5_hash.update(b'Hello, world!') print(md5_hash.hexdigest()) # 打印MD5哈希值 sha256_hash = hashlib.sha256() sha256_hash.update(b'Hello, world!') print(sha256_hash.hexdigest()) # 打印SHA-256哈希值
-
base64
库:用于对数据进行Base64编码和解码。import base64 encoded_data = base64.b64encode(b'Hello, world!') print(encoded_data) decoded_data = base64.b64decode(encoded_data) print(decoded_data.decode('utf-8')) # 打印解码后的字符串
-
sys
库:用于访问与Python解释器紧密相关的变量和函数,比如Python版本、命令行参数等。import sys print(sys.version) # 打印Python版本
-
math
库:提供了一系列数学函数,比如平方根、三角函数等。import math print(math.sqrt(16)) # 打印16的平方根
-
datetime
库:用于处理日期和时间。from datetime import datetime print(datetime.now()) # 打印当前时间
6.2 第三方库
-
requests
:一个简单易用的HTTP库,用于发送HTTP请求。import requests response = requests.get('https://api.github.com') print(response.json()) # 打印响应的JSON内容
-
numpy
:一个强大的科学计算库,支持多维数组对象、矩阵运算、线性代数、傅里叶变换等。import numpy as np arr = np.array([1, 2, 3, 4, 5]) print(arr) # 打印数组
-
pandas
:一个开源的数据分析和操作库,提供了快速、灵活和表达性强的数据结构,旨在使“关系”或“标签”数据的处理工作变得既简单又直观。import pandas as pd df = pd.DataFrame({'Name': ['Alice', 'Bob', 'Charlie'],'Age': [25, 30, 35] }) print(df) # 打印DataFrame
7. 并发编程
并发编程是Python中一个非常重要的领域,它允许程序同时执行多个任务。Python提供了多种实现并发编程的方式,包括多线程、多进程和异步编程等。
7.1 多线程
多线程是一种并发编程技术,它允许在单个程序中同时运行多个线程。每个线程都是一个独立的执行路径,可以并发地执行代码。
使用threading
模块
Python的threading
模块提供了创建和管理线程的功能。以下是一个简单的多线程示例:
import threading
import timedef worker(thread_id):print(f"Thread {thread_id} is starting.")time.sleep(2)print(f"Thread {thread_id} is ending.")threads = []
for i in range(5):thread = threading.Thread(target=worker, args=(i,))threads.append(thread)thread.start()for thread in threads:thread.join()print("All threads have finished.")
在这个示例中,创建5个线程,每个线程都执行worker
函数。thread.start()
方法用于启动线程,thread.join()
方法用于等待线程结束。
7.2 多进程
多进程是另一种并发编程技术,它通过在多个进程中运行代码来实现并发。与多线程相比,多进程通常具有更好的性能和资源利用率,因为每个进程都有自己的内存空间和系统资源。
使用multiprocessing
模块
Python的multiprocessing
模块提供了创建和管理进程的功能。以下是一个简单的多进程示例:
import multiprocessing
import timedef worker(process_id):print(f"Process {process_id} is starting.")time.sleep(2)print(f"Process {process_id} is ending.")processes = []
for i in range(5):process = multiprocessing.Process(target=worker, args=(i,))processes.append(process)process.start()for process in processes:process.join()print("All processes have finished.")
在这个示例中,创建5个进程,每个进程都执行worker
函数。process.start()
方法用于启动进程,process.join()
方法用于等待进程结束。
7.3 异步编程
异步编程是一种并发编程技术,它允许程序在等待I/O操作(如网络请求、文件读写等)完成时继续执行其他任务。Python的asyncio
库提供了异步编程的支持。
使用asyncio
库
以下是一个简单的异步编程示例:
import asyncioasync def fetch(url):print(f"Starting fetch of {url}")await asyncio.sleep(2) # 模拟网络请求print(f"Finished fetch of {url}")async def main():tasks = [fetch('http://example.com') for _ in range(5)]await asyncio.gather(*tasks)asyncio.run(main())
在这个示例中,定义一个异步函数fetch
,它模拟了一个网络请求。main
函数创建了5个异步任务,并使用asyncio.gather
方法同时运行它们。asyncio.run(main())
用于运行异步程序。
7.4 线程池和进程池
为了更高效地管理线程和进程,Python提供了线程池和进程池的概念。线程池和进程池允许你限制并发任务的数量,并重用现有的线程或进程,从而减少了创建和销毁线程或进程的开销。
使用concurrent.futures
模块
concurrent.futures
模块提供了ThreadPoolExecutor
和ProcessPoolExecutor
类,用于创建线程池和进程池。以下是一个简单的示例:
from concurrent.futures import ThreadPoolExecutor, as_completed
import timedef worker(thread_id):print(f"Thread {thread_id} is starting.")time.sleep(2)print(f"Thread {thread_id} is ending.")return thread_idwith ThreadPoolExecutor(max_workers=3) as executor:futures = [executor.submit(worker, i) for i in range(5)]for future in as_completed(futures):result = future.result()print(f"Result: {result}")
在这个示例中,创建一个最大容量为3的线程池,并提交了5个任务。as_completed
函数用于迭代已完成的任务,并获取其结果。
以上是对Python的一些基本介绍和示例。在实际应用中,需要根据具体的需求和场景选择合适的并发编程技术。
许久未更新您猜怎么着,整理编写实属不易 有点费人,麻烦各位动动发财的小手,点赞收藏评论支持一波 谢谢!
相关文章:
Python编程整理汇总(基础汇总版)
1. 基础语法 1.1 变量与数据类型 整数:a 10 浮点数:b 3.14 字符串:c "Hello, World!" 布尔值:d True 列表:e [1, 2, 3, 4, 5] 元组:f (1, 2, 3) 字典:g {"name&qu…...
24软专 数据结构
1、A[n],k,将数组向右循环移动k位。要求时间复杂度O(n),空间O(1)。 思路:采用三次反转数组的操作,可以实现时间复杂度为O(n),空间复杂度为O(1)的算法。 void moveElem(int array[],int k,int length){//a…...
如何更改手机GPS定位
你是否曾想过更改手机GPS位置以保护隐私、玩游戏或访问受地理限制的内容?接下来我将向你展示如何使用 MagFone Location Changer 更改手机GPS 位置!无论是在玩Pokmon GO游戏、发布社媒贴子,这种方法都快速、简单且有效。 第一步:下…...
java Queue 详解
Java Queue 详解 Queue 是 Java 集合框架中用于实现 队列 数据结构的接口,位于 java.util 包中。队列是一种 先进先出(FIFO) 的数据结构,元素按照插入的顺序依次出队。 1. Queue 的基本特性 FIFO(First-In-First-Out&…...
贪心算法 -- 递增子序列
目录 最长递增子序列 题解: 代码: 递增的三元子序列 题解: 代码: 简易版: 最长连续递增序列 题解: 代码: 最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode…...
MySQL:表的增删查改
目录 一. Create 1.1 单行数据全列插入 1.2 多行数据全列插入 1.3 插入否则更新 1.3.1 要插入的值与原数据有冲突则更新 1.3.2 要插入的值与原数据没有冲突则正常插入 1.3.3 要插入的值与原数据有冲突但是连续更新了两次 1.4 替换 二. Retrieve 2.…...
Python操作neo4j库py2neo使用之创建和查询(二)
Python操作neo4j库py2neo使用之创建和查询(二) py2neo 创建操作 1、连接数据库 from py2neo import Graph graph Graph("bolt://100.100.20.55:7687", auth(user, pwd), nameneo4j)2、创建Node from py2neo import Node, Subgraph # 创建…...
【pytorch-04】:线性回归案例(手动构建)
文章目录 1 构建数据集2 构建假设函数3 损失函数4 优化方法5 训练函数6.总结 1 构建数据集 为什么构建数据加载器? 在进行训练的时候都是采用的不是全部的数据,而是采用一个batch_size的数据进行训练,每次向模型当中送入batch_size数据&#…...
外包干了3年,技术退步明显...
先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能…...
React Native 全栈开发实战班 -原生功能集成之相机与图片
在移动应用中,相机功能 和 图片选择 是非常常见的需求,用户可以通过相机拍照或从相册中选择图片。React Native 提供了多种方式来实现相机和图片选择功能,包括使用第三方库(如 react-native-image-picker)和调用原生模…...
以太坊交易处理全流程:数据采集、价格查询与问题解决
一、背景 在开发交易记录处理系统时,涉及从以太坊链上获取交易记录、将其存储到数据库、根据交易时间查询历史价格,并计算交易的美元价值。在这一过程中,涉及多个技术环节及工具的综合使用,例如区块链 API 调用、数据库操作、时间戳处理和外部数据接口整合。 本文涉及的内…...
css数据不固定情况下,循环加不同背景颜色
<template><div><p v-for"(item, index) in items" :key"index" :class"getBackgroundClass(index)">{{ item }}</p></div> </template><script> export default {data() {return {items: [学不会1, …...
【Node.js】Node.js 和浏览器之间的差异
Node.js 是一个强大的运行时环境,它在现代 JavaScript 开发中扮演着重要角色。然而,许多开发者在使用 Node.js 时常常会感到困惑,尤其是与浏览器环境的对比。本文将深入探讨 Node.js 和浏览器之间的差异,帮助你全面理解两者的设计…...
算法【最长递增子序列问题与扩展】
本文讲解最长递增子序列以及最长不下降子序列的最优解,以及一些扩展题目。本文中讲述的是最优解,时间复杂度是O(n*logn),空间复杂度O(n),好实现、理解难度不大。这个问题也可以用线段树来求解,时间和空间复杂度和本节讲…...
【论文速读】| RobustKV:通过键值对驱逐防御大语言模型免受越狱攻击
基本信息 原文标题:ROBUSTKV: DEFENDING LARGE LANGUAGE MODELS AGAINST JAILBREAK ATTACKS VIA KV EVICTION 原文作者:Tanqiu Jiang, Zian Wang, Jiacheng Liang, Changjiang Li, Yuhui Wang, Ting Wang 作者单位:Stony Brook University…...
查询Mysql中被锁住的表以及如何解锁
当MySQL中的表被锁住时,可能会导致查询变慢或完全无法访问该表。处理这种情况的方法取决于锁的原因以及你想要达到的目标。以下是一些常见的步骤和技巧,可以帮助你解决被锁住的表的问题: 1. 识别锁的情况 首先,你需要确定哪些表…...
【Mac】未能完成该操作 Unable to locate a Java Runtime
重生之我做完产品经理之后回来学习Data Mining Mac打开weka.jar报错"未能完成该操作 Unable to locate a Java Runtime" 1. 打开终端执行 java -version 指令,原来是没安装 JDK 环境 yyzccnn-mac ~ % java -version The operation couldn’t be comple…...
RT_Thread内核源码分析(三)——线程
目录 1. 线程结构 2. 线程创建 2.1 静态线程创建 2.2 动态线程创建 2.3 源码分析 2.4 线程内存结构 3. 线程状态 3.1 线程状态分类 3.2 就绪状态和运行态 3.3 阻塞/挂起状态 3.3.1 阻塞工况 3.4 关闭状态 3.4.1 线程关闭接口 3.4.2 静态线程关闭 3.4.3 动态线程关…...
淘宝 NPM 镜像源
npm i vant/weapp -S --production npm config set registry https://registry.npmmirror.com 要在淘宝 NPM 镜像站下载项目或依赖,你可以按照以下步骤操作: 1. 设置淘宝 NPM 镜像源 首先,你需要设置淘宝 NPM 镜像源以加速下载。可以通过…...
机器学习—学习曲线
学习曲线是帮助理解学习算法如何工作的一种方法,作为它所拥有的经验的函数。 绘制一个符合二阶模型的学习曲线,多项式或二次函数,画出交叉验证错误Jcv,以及Jtrain训练错误,所以在这个曲线中,横轴将是Mtrai…...
Rust 智能指针
Rust 智能指针 引言 Rust 是一种系统编程语言,以其内存安全性、并发性和高性能而闻名。Rust 的核心特性之一是其独特的所有权模型,它确保了内存安全,同时避免了垃圾收集。在 Rust 中,智能指针是一种特殊的数据结构,它们不仅存储数据,还负责管理数据的生命周期。智能指针…...
云原生周刊:Kubernetes v1.32 要来了
开源项目推荐 Woodpecker Woodpecker 是一款轻量级且功能强大的 CI/CD 引擎,以其高度可扩展性和易用性著称。它支持多种版本控制系统与编程语言,能够灵活适配不同开发流程,帮助团队实现高效的持续集成与交付。无论是个人项目还是大型团队&a…...
Easyexcel(3-文件导出)
相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出) 响应头设置 通过设置文件导出的响应头,可以自定义文件导出的名字信息等 //编码格式为UTF-8 response.setC…...
php:使用socket函数创建WebSocket服务
一、前言 闲来无事,最近捣鼓了下websocket,但是不希望安装第三方类库,所以打算用socket基础函数创建个服务。 二、构建websocket服务端 <?phpclass SocketService {// 默认的监听地址和端口private $address 0.0.0.0;private $port 8…...
ubuntu20.04中编译安装gcc 9.2.0
ubuntu20.04中编译安装gcc 9.2.0,步骤如下: #install compile dependence libraries 1:$ sudo apt install libgmp-dev libisl-dev libmpc-dev libmpfr-dev # install gcc 9.2.0 # download source code 2:$ wget http://ftp.gnu.org/gn…...
ssm158企业人事管理系统的设计与实现+jsp(论文+源码)_kaic
设计题目:企业人事管理系统的设计与实现 摘 要 进入信息时代以来,很多数据都需要配套软件协助处理,这样可以解决传统方式带来的管理困扰。比如耗时长,成本高,维护数据困难,数据易丢失等缺点。本次使用数据…...
OceanBase数据库产品与工具介绍
OceanBase:蚂蚁集团自主研发的分布式关系数据库 1、什么是 OceanBase? OceanBase 是由蚂蚁集团完全自主研发的企业级分布式关系数据库,始创于 2010 年。它具有以下核心特点: 数据强一致性:在分布式架构下确保数据强…...
PakePlus将任何网页免费打包为mac/windows跨平台软件程序教程,只需要一个Github token就可以了
PakePlus是一个开源免费的软件,支持 Mac、Windows 和 Linux,很快也将支持 Android 和 iOS。无需在本地安装复杂的依赖环境,只需要一个Github Token就可以了。查看 README 以获取热门包和自定义开发信息。欢迎在讨论区分享你的建议。开源地址&…...
Element UI 组件库详解【Vue】
文章目录 一、引言二、安装并使用1. 安装2. 使用 三、常见组件说明1. 基础组件2. 布局组件3. 布局容器4. 选择框组件5. 输入框组件6. 下拉框组件7. 日期选择器8. 上传组件9. 表单组件10. 警告组件11. 提示组件12. 表格组件 一、引言 官方网站,element.eleme.cn El…...
Android kotlin之配置kapt编译器插件
配置项目目录下的gradle/libs.versions.toml文件,添加kapt配置项: 在模块目录下build.gradle.kt中增加 plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android)// 增加该行alias(libs.plugins.jetbrains.kotl…...
基于 MUSA 的大语言模型推理和服务框架vLLM
1. 引言 vLLM是一个高性能且内存高效的大语言模型推理和服务框架,也是当前业界使用范围最广的大模型推理框架,截至目前github star数28.4k。该框架性能优秀,而且部署容易,使用CUDA/ROCm提供GPU加速能力。但vLLM目前不支持使用摩…...
k8s 集群安装
安装rockylinux https://www.jianshu.com/p/a5fe20318b8e https://www.cnblogs.com/haoee/p/18290506 配置VirtualBox双网卡 https://www.cnblogs.com/ShineLeBlog/p/17580311.html https://zhuanlan.zhihu.com/p/341328334 https://blog.csdn.net/qq_36544785/article/deta…...
Linux-服务器辨别实体机OR虚拟机
快速命令 ① lscpu(查看CPU信息) lscpu Hypervisor vendor: KVM (超管理器厂商:KVM。虚拟机:KVM / VMware) Virtualization: VT-x(虚拟化:VT-x。实体机:VT-x / AMD-V) ② systemd-detect-virt(检测当前系…...
堤防安全监测系统方案
一、背景情况 堤防是开发利用水资源和防治水灾害的重要工程措施之一,对防洪、供水、生态、发电、航运等至关重要。我国现有堤防9.8万多座,其中大中型堤防4700多座、小型堤防9.4万座,80%以上修建于上世纪50至70年代。由于堤防管护力量薄弱&am…...
Leetcode 求根节点到叶节点数字之和
使用深度优先搜索 DFS 来做 我提供的代码使用的是 深度优先搜索(DFS,Depth-First Search) 算法。以下是具体的算法思想和实现步骤的解释: 算法思想 树的路径代表数字: 树中每条从根节点到叶子节点的路径可以看作一个整…...
Git分布式版本控制系统
1. 版本控制系统 版本控制系统主要分为两类:集中式、分布式。 集中式:SVM(工作流程:所有的文件都保存在中央服务器上,每个电脑上只保存了一个副本,当需要修改时,先下载中央服务器上的最新版本文件…...
数据库审计工具--Yearning 3.1.9普民的使用指南
1 页面登录 登录地址:18000 (不要勾选LDAP) 2 修改用户密码 3 DML/DDL工单申请及审批 工单申请 根据需要选择【DML/DDL/查询】中的一种进行工单申请 填写工单信息提交SQL检测报错修改sql语句重新进行SQL检测,如检测失败可以进行SQL美化后…...
VMware Workstation 17.6.1
概述 目前 VMware Workstation Pro 发布了最新版 v17.6.1: 本月11号官宣:针对所有人免费提供,包括商业、教育和个人用户。 使用说明 软件安装 获取安装包后,双击默认安装即可: 一路单击下一步按钮: 等待…...
unity 中 RectTransform 的常用几个属性
RectTransform rectTransform this.GetComponent<RectTransform>(); rectTransform this.transform as RectTransform; Vector3 vector1 rectTransform.position; //自身轴心点相对于锚点的位置(编译器显示的pos) …...
23种设计模式-模板方法(Template Method)设计模式
文章目录 一.什么是模板方法模式?二.模板方法模式的特点三.模板方法模式的结构四.模板方法模式的应用场景五.模板方法模式的优缺点六.模板方法模式的C实现七.模板方法模式的JAVA实现八.代码解析九.总结 类图: 模板方法设计模式类图 一.什么是模板方法模…...
网络安全之国际主流网络安全架构模型
目前,国际主流的网络安全架构模型主要有: ● 信息技术咨询公司Gartner的ASA(Adaptive Security Architecture自适应安全架构) ● 美国政府资助的非营利研究机构MITRE的ATT&CK(Adversarial Tactics Techniques &…...
SpringCloud多机部署,负载均衡-LoadBalance
一.负载均衡 1.1问题描述 //根据应用名称获取服务列表 List<ServiceInstance> instancesdiscoveryClient.getInstances("product-service"); //一个微服务可能有多个实例,获取第一个 EurekaServiceInstance instance(EurekaServiceInstance)insta…...
前端开发调试之 PC 端调试学习笔记
一、引言 在前端开发过程中,调试是至关重要的一个环节。它能帮助我们快速定位代码中的问题,无论是页面布局错乱、交互效果异常还是性能不佳等情况,通过有效的调试手段都可以找到根源并进行修复。而在 PC 端进行调试有着其特定的方法和技巧&am…...
视频流媒体播放器EasyPlayer.js无插件直播流媒体音视频播放器Android端webview全屏调用无效问题
流媒体播放器的核心技术与发展趋势正在不断推动着行业的变革。未来,随着技术的不断进步和应用场景的不断拓展,流媒体播放器将为用户带来更加便捷、高效、个性化的观看体验。同时,流媒体播放器也会成为数字娱乐产业的重要组成部分,…...
使用 cnpm 安装 Electron,才是正确快速的方法
当然,下面是总结的几种安装 Electron 的方法,包括使用 npm 和 cnpm,以及一些常见的问题解决技巧。 ### 1. 使用 npm 安装 Electron #### 步骤 1: 初始化项目 在你的项目目录中初始化一个新的 Node.js 项目: bash npm init -y …...
pytest日志总结
pytest日志分为两类: 一、终端(控制台)打印的日志 1、指定-s,脚本中print打印出的信息会显示在终端; 2、pytest打印的summary信息,这部分是pytest 的默认输出(例如测试结果PASSED, FAILED, S…...
【Ubuntu24.04】使用服务器
目录 0 背景1 将文件传送到服务器1.1 主机上的虚拟机1.2 另一台独立的计算机(包括上面的虚拟机)1.3 远程文件传输1.3.1 scp2 操作服务器2.1 ssh2.2 Termius2.2.1 下载2.2.2 安装2.2.3 使用2.2.4 小结3 总结0 背景 你是一个开发者,有自己的测试环境:一个Linux服务器(假设是…...
Spark 之 Aggregate
Aggregate 参考链接: https://github.com/PZXWHU/SparkSQL-Kernel-Profiling 完整的聚合查询的关键字包括 group by、 cube、 grouping sets 和 rollup 4 种 。 分组语句 group by 后面可以是一个或多个分组表达式( groupingExpressions )…...
ubuntu没有了有线网络如何修复
今天打开ubuntu之后发现有线网络连接没有了,如下图,此时是修复好之后的,“有线”部分存在,出现问题时是不存在的 此时只需要修改NetworkManager.conf配置文件,将managedfalse更改为managedtrue,保存退出就可以了 sudo…...
2411rust,异步函数
原文 Rust异步工作组很高兴地宣布,在实现在特征中使用异步 fn的目标方面取得了重大进度.将在下周发布稳定的Rust1.75版,会包括特征中支持impl Trait注解和async fn. 稳定化 自从RFC#1522在Rust1.26中稳定下来以来,Rust就允许用户按函数的返回类型(一般叫"RPIT")编…...