网站建设ASP心得体会/刷神马seo排名首页排名
前言
本篇内容为学习七月大佬开源框架PytestAutoApi记录的相关知识点,供大家学习探讨
项目地址:https://gitee.com/yu_xiao_qi/pytest-auto-api2
阅读本文前,请先对该框架有一个整体学习,请认真阅读作者的README.md文件。
本文目录如下:
文章目录
- 前言
- ast.literal_eval()
- os.sep.join 和 os.path.join的区别
- python中def方法中加一个*号是什么意思
- python的@property
- 循环删除文件
- pytest的钩子函数
- staticmethod,classmethod,普通method有什么区别
- 关于缓存
- 关于安全读取yaml数据
- 枚举类型enum
- 1、enum模块
- 2、枚举类型的使用
- 其他获枚举取值的方式:
- 枚举值value:name的映射函数:`_value2member_map_`
- python中re.sub函数
ast.literal_eval()
参考文章:https://blog.csdn.net/xili2532/article/details/115393854
功能类似于eval,eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果,但是eval也有很大的安全隐患,比如用户输入一些恶意字符串执行操作。eval在处理空字符串时会返回EOF错误,或者语法格式问题,缺括号等等
所以这里就引出了另外一个安全处理方式ast.literal_eval.,会判断需要计算的内容计算后是不是合法的Python类型,如果是则进行运算,否则就不进行运算。从而大大降低了系统的危险性
os.sep.join 和 os.path.join的区别
os.sep.join
和os.path.join
都是用于拼接文件路径的方法,但是两者的作用不同。
os.sep
是一个字符串常量,表示操作系统路径分隔符,如在Windows系统中为\\
,在Unix系统中为/
。而os.sep.join
方法则是将列表或者元组中的字符串用os.sep
拼接起来,形成一个路径字符串。
举个例子:
import ospath_list = ['usr', 'local', 'bin']
path_str = os.sep.join(path_list)print(path_str)
# Unix系统中输出:usr/local/bin
# Windows系统中输出:usr\local\bin
而os.path.join
方法则是根据不同操作系统的不同路径分隔符自动拼接起来路径字符串。这样就能在不同操作系统中正确拼接文件路径了。
举个例子:
import ospath_str = os.path.join('usr', 'local', 'bin')print(path_str)
# Unix系统中输出:usr/local/bin
# Windows系统中输出:usr\local\bin
因此,如果要拼接路径,推荐使用os.path.join
方法,这样能保证代码的可移植性。而os.sep.join
方法更适合在拼接路径中需要自定义路径分隔符的情况下使用。
python中def方法中加一个*号是什么意思
在 Python 的函数定义中,*args 和 **kwargs 分别表示接收可变数量的位置参数和关键字参数。当在函数定义时,使用单个 * 作为形参前缀时,表示接收可变数量的位置参数,而使用双星号 ** 前缀时,表示接收可变数量的关键字参数。
当在函数调用时,使用单个星号 * 作为实参前缀时,表示将一个可迭代对象(比如一个列表或元组)拆分成独立的位置参数,而使用双星号 ** 前缀时,表示将一个字典类型的对象拆分成独立的关键字参数。
因此,如果在函数定义中使用 *args,表示函数将接收任意数量的位置参数,这些参数将被收集到一个元组中;如果在函数定义中使用 **kwargs,则表示函数将接收任意数量的关键字参数,这些参数将被收集到一个字典中。如果在函数定义中同时使用 *args 和 **kwargs,则表示函数将接收任意数量的位置参数和关键字参数。
如果在函数定义中在参数前加一个单星号 *,表示将所有的位置参数收集到一个元组中。如果在函数定义中在参数前加两个星号 **,表示将所有的关键字参数收集到一个字典中。如果同时使用 * 和 **,则表示将位置参数收集到一个元组中,关键字参数收集到一个字典中。
python的@property
在 Python 中,@property 装饰器用于将一个方法转化为只读属性,让类的调用者可以像访问属性一样调用该方法,而无需显式地调用方法名。通常情况下,如果需要获取一个属性的值,则需要编写一个 getter 方法。但是,使用 @property 装饰器后,该方法可以像类的其他属性一样调用,从而简化代码。
下面是一个使用 @property 装饰器的示例:
class Person:def __init__(self, name):self._name = name@propertydef name(self):return self._name
在上述示例中,@property 装饰器将 name 方法转化为只读属性。这意味着,如果要获取 Person 实例的 name 属性,只需使用实例对象的 name 属性访问即可,如下所示:
person = Person('Alice')
print(person.name)
这将输出 Alice
,即 person 实例的 name 属性的值。注意,这里不需要显式调用 name()
方法来获取值。
需要注意的是,@property 装饰器只能用于只读属性,如果需要设置属性的值,则需要使用类似于 name.setter
的装饰器来定义一个 setter 方法。
循环删除文件
def del_file(path):"""删除目录下的文件"""list_path = os.listdir(path)for i in list_path:c_path = os.path.join(path, i)if os.path.isdir(c_path):del_file(c_path)else:os.remove(c_path)
pytest的钩子函数
官网:https://docs.pytest.org/en/6.2.x/_modules/_pytest/hookspec.html#pytest_terminal_summary
pytest_terminal_summary
def pytest_terminal_summary(terminalreporter):"""收集测试结果"""_PASSED = len([i for i in terminalreporter.stats.get('passed', []) if i.when != 'teardown'])_ERROR = len([i for i in terminalreporter.stats.get('error', []) if i.when != 'teardown'])_FAILED = len([i for i in terminalreporter.stats.get('failed', []) if i.when != 'teardown'])_SKIPPED = len([i for i in terminalreporter.stats.get('skipped', []) if i.when != 'teardown'])_TOTAL = terminalreporter._numcollected_TIMES = time.time() - terminalreporter._sessionstarttimeINFO.logger.error(f"用例总数: {_TOTAL}")INFO.logger.error(f"异常用例数: {_ERROR}")ERROR.logger.error(f"失败用例数: {_FAILED}")WARNING.logger.warning(f"跳过用例数: {_SKIPPED}")INFO.logger.info("用例执行时长: %.2f" % _TIMES + " s")try:_RATE = _PASSED / _TOTAL * 100INFO.logger.info("用例成功率: %.2f" % _RATE + " %")except ZeroDivisionError:INFO.logger.info("用例成功率: 0.00 %")
这会在用例执行完毕之后显示在控制台的
pytest_configure
钩子函数源码都在\Lib\site-packages\_pytest\hookspec.py
文件夹中
这个相当于是pytest.ini中设置pytest的执行规则,主要是为了解决自定义标记 warnings信息。
在pytest.ini中设置和在conftest.py文件中用config.addinivalue_line
设置mark标记是一样的效果。
pytest_collection_modifyitems
总结:改变用例的执行顺序
参考:https://blog.csdn.net/mashang_z111/article/details/127266694
【严格意义上来说,我们在用例设计原则上用例就不要有依赖顺序,这样才能更好的体现出测试用例的意义。(测试用例的执行不需要按照顺序来执行,而是随即执行)】
pytest_collection_modifyitems 是在用例收集完毕之后被调用,可以用来调整测试用例执行顺序;
它有三个参数,分别是:session:会话对象;
config:配置对象;
items:用例对象列表;改变items里面用例的顺序就可以改变用例的执行顺序了这三个参数分别有不同的作用,都可以拿来单独使用,修改用例执行顺序主要是使用 items 参数【用例执行之前,收集到的测试用例会以元素对象的方式存放在用例对象列表items中】
staticmethod,classmethod,普通method有什么区别
在 Python 中,类定义中的函数可以被定义为三种不同类型的方法:staticmethod
、classmethod
和普通方法(也称为实例方法)。这些方法的区别如下:
- 普通方法:
普通方法是类中最常见的方法类型。这些方法可以访问并操作类的实例属性和方法,同时还可以使用 self
关键字来引用调用该方法的实例。普通方法通常用于在类实例上执行某些操作。
例如:
MyClass:def my_method(self, arg1, arg2):self.arg1 = arg1self.arg2 = arg2return self.arg1 + self.arg2obj = MyClass()
result = obj.my_method(1, 2)
print(result)
在这个例子中,my_method
是一个普通方法,它可以访问 MyClass
类的实例属性 arg1
和 arg2
,并返回它们的和。
staticmethod
:
staticmethod
是一个被装饰器 @staticmethod
修饰的方法。这个装饰器使方法变为静态方法,即该方法既不需要访问类的实例属性和方法,也不需要访问类的类属性和方法,因此不需要传递 self
或 cls
参数。静态方法通常用于实现与类相关的辅助函数。
例如:
MyClass:@staticmethoddef my_static_method(arg1, arg2):return arg1 + arg2result = MyClass.my_static_method(1, 2)
print(result)
在这个例子中,my_static_method
是一个静态方法,它不需要访问类的实例属性和方法,也不需要访问类的类属性和方法,因此不需要传递 self
或 cls
参数。
classmethod
:
classmethod
是一个被装饰器 @classmethod
修饰的方法。这个装饰器使方法变为类方法,即该方法需要访问类的类属性和方法,因此需要传递 cls
参数。类方法通常用于实现与类相关的工厂方法。
例如:
MyClass:count = 0@classmethoddef from_count(cls):obj = cls()obj.count = cls.countcls.count += 1return objobj1 = MyClass.from_count()
obj2 = MyClass.from_count()
print(obj1.count, obj2.count)
在这个例子中,from_count
是一个类方法,它需要访问类的类属性 count
,因此需要传递 cls
参数。这个方法用于创建 MyClass
类的实例,并将其 count
属性设置为类的类属性 count
的值。这个方法在每次调用时都会递增 count
属性的值,以便为每个新实例创建一个唯一的标识符。
关于缓存
我的问题:
我将一个文件的内容直接读取到python的缓存中,从而避免频繁的IO操作,我想知道python可以有多大的缓存,保证我读取的文件数据不丢失呢
Python 语言没有直接限制缓存大小的参数,因此,理论上讲,Python 缓存的大小可以无限制增加,但实际上,这取决于你的计算机的硬件和操作系统的限制。
一般来说,Python 在内存中创建的对象都会占用一定的空间,而 Python 的内存使用是受限于计算机的物理内存大小的。因此,当你读取大型文件时,缓存大小应该小于计算机的可用内存大小,以避免内存不足的情况。
另外,还需要注意的是,将整个文件读入内存中可能会导致 Python 解释器崩溃或程序崩溃,尤其是对于非常大的文件。因此,如果你需要处理大型文件,最好使用逐行读取或者分块读取的方式,而不是将整个文件读入内存中。这样可以有效减少内存的占用,并避免出现程序崩溃的情况。
关于安全读取yaml数据
示列代码:
res = yaml.load(data, Loader=yaml.FullLoader)
这段代码是将读取到的 YAML 格式数据
data解析为 Python 对象。
yaml.load()的作用是将读取到的 YAML 字符串解析为 Python 对象,这里使用的是 yaml.FullLoader。
yaml.FullLoader是 yaml 库中一个安全的 Loader,它可以反序列化任何 Python 对象,并且不会执行任何代码。
这里的 res 变量将会保存 Python 对象。
需要注意的是,这个函数在较新版本的 PyYAML 库中已经不推荐使用了,因为会存在安全问题。
新版本的 PyYAML 库建议使用 **yaml.safe_load()**函数来代替 yaml.load()函数,以避免 Python 序列化攻击等安全问题。
yaml.safe_load()函数仅仅序列化基本 Python 对象类型,不能反序列化任何带有Python对象类型的数据。
同时,Python 3.10 后,yaml.FullLoader 将被标记为危险的,建议改用 yaml.SafeLoader 来代替。
枚举类型enum
参考文章:https://blog.csdn.net/yuxuan89814/article/details/128592704
1、enum模块
python的枚举类型是继承enum模块的Enum类,定义自己的枚举类,枚举元素相当于类变量
from enum import Enum
class colorEnum(Enum):red = 1yellow = 2blue = 3
枚举类型是name=value的形式,name是不能重复,value可以重复,但是重复的值的别名是第一个的
print(colorEnum.red) #1colorEnum.red
print(colorEnum.gray) #1colorEnum.red
print(colorEnum.red.value) #11
如果要枚举类中的name不相同,则需要引入unique
from enum import Enum, unique
@unique
class colorEnum(Enum):red = 1yellow = 2blue = 3gray=1
print(colorEnum.red)
# ValueError: duplicate values found in <enum 'colorEnum'>: gray -> red
2、枚举类型的使用
from enum import Enum
class colorEnum(Enum):red = 1yellow = 2blue = 3print(colorEnum.red)
print(type(colorEnum.red))
print(colorEnum.red.value)
print(type(colorEnum.red.value))########### 结果
colorEnum.red
<enum 'colorEnum'>
1
<class 'int'>
其他获枚举取值的方式:
枚举变量是name=value的形式:
可以使用value取值value或者name
可以使用name变量去取值value或者name
print(colorEnum(1))
print(colorEnum(1).value)
print(colorEnum["red"])
print(colorEnum["red"].value)#### 结果
colorEnum.red
1
colorEnum.red
1
获取所有的names和values
使用魔术方法__members__获取values和names,结果是dict数组
print(colorEnum.__members__.values())
print(colorEnum.__members__.keys())##########
dict_values([<colorEnum.red: 1>, <colorEnum.yellow: 2>, <colorEnum.blue: 3>])
dict_keys(['red', 'yellow', 'blue'])
实用性举例:
判断变量是否在我们枚举类中,在的话打印出值:
colors=["red","blue","pink"]
for color in colors:if color in colorEnum.__members__.keys():print(colorEnum[color].value)##########
1
3
枚举值value:name的映射函数:_value2member_map_
from enum import Enum
class colorEnum(Enum):red = 1yellow = 2blue = 3print(colorEnum._value2member_map_)
###
{1: <colorEnum.red: 1>, 2: <colorEnum.yellow: 2>, 3: <colorEnum.blue: 3>}
使用举例:
color_nums=[1,2,4]
for color_num in color_nums:if color_num in colorEnum._value2member_map_:print(colorEnum(color_num).name)######
red
yellow
class colorEnum(Enum):red = 1yellow = 2blue = 3gray = 1for color_num in colorEnum._value2member_map_.keys():print(color_num)print(colorEnum._value2member_map_.keys())
print(type(colorEnum._value2member_map_.keys()))###########
1
2
3
dict_keys([1, 2, 3])
<class 'dict_keys'>
python中re.sub函数
参考文章:https://blog.csdn.net/jackandsnow/article/details/103885422
re是正则的表达式,sub是substitute表示替换
re.sub是相对复杂点的替换
re.sub(pattern, repl, string, count=0, flags=0)
re.sub的参数:5个参数
参数1:pattern
- 表示正则中的模式字符串。
参数2:repl
- 就是replacement,表示被替换的字符串,可以是字符串也可以是函数。
参数3:string
- 表示要被处理和替换的原始字符串
参数4:count
- 可选参数,表示是要替换的最大次数,而且必须是非负整数,该参数默认为0,即所有的匹配都会被替换;
参数5:flags
- 可选参数,表示编译时用的匹配模式(如忽略大小写、多行模式等),数字形式,默认为0。
例子:
只替换前两个
import re
a = '44444'
b = re.sub('4', '2', a, 2)
print(b) # 22444
匹配多个连续汉字
import re
a = ' (rr 我)#1 (d 只是)#1 (p 以)#1 (vi 笑) (v 作答)#1#2#3 (。 。)'
a = re.sub(u"[\u4e00-\u9fa5]+", '*', a) # 匹配多个连续汉字,替换为*
print(a)
## 输出(rr *)#1 (d *)#1 (p *)#1 (vi *) (v *)#1#2#3 (。 。)
匹配除了汉字之外的其他符号
# 正则表达式 u"[\u4e00-\u9fa]" 表示所有的汉字 [^...] 表示除了...之外
a = '“设置文件名,怎么样?”'
a = re.sub(u"[\u4e00-\u9fa]", '', a)
print(a) # 设置文件名怎么样
相关文章:

【python自动化】七月PytestAutoApi开源框架学习笔记(一)
前言 本篇内容为学习七月大佬开源框架PytestAutoApi记录的相关知识点,供大家学习探讨 项目地址:https://gitee.com/yu_xiao_qi/pytest-auto-api2 阅读本文前,请先对该框架有一个整体学习,请认真阅读作者的README.md文件。 本文…...

Python学习 -- logging模块
logging 模块是 Python 中用于记录日志的标准库,它提供了丰富的功能,可以帮助开发者进行日志记录和管理。以下是关于logging模块的详细使用方式,包括日志级别、处理流程、Logger 类、Handler 类、Filter 类、Formatter 类以及模块中常用函数等…...

【socket】getaddrinfo、getsockname、getpeername对比
这三个函数都是在网络编程中用来获取地址信息的,但是它们的使用场景和功能有所不同。getaddrinfo(): 这个函数主要用于将一个主机名(或者 IP 地址)和端口号转换成适用于 socket() 函数的一个或多个套接字地址结构。它能够处理 IPv4 和 IPv6 地…...

【MySQL】表的增删改查(进阶)
表的增删改查(进阶) 一. 数据库约束1. 约束类型2. NULL约束3. UNIQUE:唯一约束4. DEFAULT:默认值约束5. PRIMARY KEY:主键约束6. FOREIGN KEY:外键约束7. CHECK约束 二. 表的设计1. 一对一2. 一对多3. 多对…...

关于安卓13中Android/data目录下的文件夹只能查看无法进行删改的问题
前言 因为升级了安卓13,然后有个app需要恢复数据,打算和以前一样直接删除Android/data下对应目录再添加,结果不行,以下是结合网上以及自己手机情况来做的一种解决方案。 解决 准备: 待恢复app(包名com.…...

Vulnhub: Masashi: 1靶机
kali:192.168.111.111 靶机:192.168.111.236 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.236查看80端口的robots.txt提示三个文件 snmpwalk.txt内容,tftp服务在1337端口 sshfolder.txt内容,…...

校园二手物品交易系统微信小程序设计
系统简介 本网最大的特点就功能全面,结构简单,角色功能明确。其不同角色实现以下基本功能。 服务端 后台首页:可以直接跳转到后台首页。 用户信息管理:管理所有申请通过的用户。 商品信息管理:管理校园二手物品中…...

Pixillion Pro for Mac:将您的图像转换为艺术佳作
Pixillion for Mac有着非常强大的图像转换功能和简单的使用方法,帮助你快速完成大批量图像转换的工作,支持一键转换jpeg、jpg、bmp、png、gif、raf、heic等各种格式的图像文件,同时pixillion mac激活版还提供了图像旋转、添加水印、调整图像大…...

【上海迪士尼度假区】技术解决方案
开源平台地址Giteehttps://gitee.com/issavior/disney 技术解决方案 1. 背景2. 技术架构3. 业务架构3.1 架构图3.2 说明 4. 技术能力4.1 自研中间件4.2 定制化中间件 5. 领域模型6. 数据模型7. 交易链路8. 状态机8. 接口文档 1. 背景 上海迪士尼度假区已运营近10年,…...

每日刷题-2
目录 一、选择题 二、编程题 1、倒置字符串 2、排序子序列 3、字符串中找出连续最长的数字串 4、数组中出现次数超过一半的数字 一、选择题 1、 题目解析: 二维数组初始化的一般形式是: 数据类型 数组名[常量表达式1][常量表达式2] {初始化数据}; 其…...

AOSP内置搜狗输入并设置默认输入法
前期准备 AOSP分支:aosp13_r7 系统版本:Ubuntu 22.04.1 LTS 工具:手,vscode,winscp(因为我是用的服务器编译) 下载搜狗输入法 思路: 1.集成搜狗输入法到aosp 2.删除系统输入法 3.设置搜狗输入法为默…...

ICCV 2023|通过慢学习和分类器对齐在预训练模型上进行持续学习
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 作者介绍 张耕维 悉尼科技大学在读博士生,研究方向为持续学习 报告题目 通过慢学习和分类器对齐在预训练模型上进行持续学习 内容简介 持续学习研究的目标在于提高模型利用顺序到达的数据进行学习的…...

蓝桥杯打卡Day5
文章目录 日志排序重复者 一、日志排序IO链接 本题思路:本题就是根据就是排序的知识点,在sort内部可以使用仿函数来改变此时排序规则。 #include <bits/stdc.h>const int N10010; int n; std::string logs[N];int main() {std::ios::sync_with_stdio(false)…...

QT for andriod
QT for andriod 开发 apk软件,因为一些特殊的原因,在这里简单的记录一哈自己开发apk的流程和心得。 首先说明我采用的环境有哪些? 1、QT的版本,个人建议5.15.2的版本及以上,我是用的5.15.2。 2、andriod studio 可以…...

【广州华锐互动】AR技术在配电系统运维中的应用
随着科技的不断发展,AR(增强现实)技术逐渐走进了我们的生活。在电力行业,AR技术的应用也为巡检工作带来了许多新突破,提高了巡检效率和安全性。本文将从以下几个方面探讨AR配电系统运维系统的新突破。 首先,AR技术可以实现虚拟巡检…...

TiDB 一栈式综合交易查询解决方案获“金鼎奖”优秀金融科技解决方案奖
日前,2023“金鼎奖”评选结果揭晓, 平凯星辰(北京)科技有限公司研发的 TiDB 一栈式综合交易查询解决方案获“金鼎奖”优秀金融科技解决方案奖 , 该方案已成功运用于 多家国有大行、城商行和头部保险企业 。 此次获奖再…...

《网络是怎样连接的》(六)
本文主要取材于 《网络是怎样连接的》 第六章。 目录 6.1 服务器概览 6.2 服务器的接收操作 6.3 Web服务器程序解释请求消息并作出响应 6.4 浏览器接收响应消息并显示内容 简述:本文主要内容是解释 网络包到达服务器之后,如何给客户端响应的。 服务…...

2023年高教社杯数学建模国赛 赛题浅析
2023年国赛如期而至,为了方便大家尽快确定选题,这里将对赛题进行浅析,以分析赛题的主要难点、出题思路以及选择之后可能遇到的难点进行说明,方便大家尽快确定选题。 难度排序 B>A>C 选题人数 C>A>B (预估结果&…...

使用QT操作Excel 表格的常用方法
VBA 简介 Microsoft Office软件通常使用VBA来扩展Windows的应用程序功能,Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言。 在VBA的参考手册中就可以看到具体函数、属性的用法,Qt操作Excel主要通过 QAxObj…...

vue前后端端口不一致解决方案
在config index.js文件中 引入如下代码即可 const path require(path) const devEnv require(./dev.env) module.exports {dev: {// PathsassetsSubDirectory: static,assetsPublicPath: /,proxyTable: devEnv.OPEN_PROXY false ? {} : {/api: {target: http://localhos…...

springcloudSeata处理分布式事务之1.7.0
1.5.0之后版本发生了很大改变 1.seata安装 1.1官网地址 http://seata.io/zh-cn/ 1.2下载地址 https://github.com/seata/seata/releases 下载的是seata-server-1.7.0.zip 1.3seata相关配置的修改 seata-server-1.7.0\seata\conf下的application.yml进行修改 server:por…...

每日刷题|回溯法解决全排列问题
食用指南:本文为作者刷题中认为有必要记录的题目 前置知识:回溯法经典问题之组合 ♈️今日夜电波:爱人错过—告五人 1:11 ━━━━━━️💟──────── 4:52 …...

10-JVM调优工具详解
上一篇:09-JVM垃圾收集底层算法实现 前置启动程序 事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用 1.Jmap 此命令可以用来查看内存信息,实例个数以及占用内存大小 jmap -histo 14660 #查看历史…...

东方博易oj——3119 - 约瑟夫问题2(链表)
文章目录 题目题目描述输入输出样例输入 输出标签 AC代码 题目 题目描述 约瑟夫问题:有 n n n只猴子,按顺时针方向围成一圈选大王(编号从 1 1 1到 n &#…...

C++,day0907
#include <iostream>using namespace std; struct stu { private:int num; private:double score[32];public:void setNum(){cout <<"请输入学生人数:";cin >>num;}void input(){cout<<"请输入学生的成绩:"<<endl;for(int i…...

孤儿僵尸守护进程的简单理解
孤儿进程: 一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。孤儿进程将被init进程所收养,并由init进程对它们完成状态收集工作。 如何模仿一个孤儿进程: 答案是: kill 父…...

学习笔记——Java入门第一季
1.1 Java的介绍与前景 Java语言最早期的制作者:James Gosling(詹姆斯高斯林) 1995年5月23日,Sun Microsystems公司宣布Java语言诞生。 1.2 Java的特性与版本 跨平台 开源(开放源代码) Java代码ÿ…...

更改注册表exe值后的惨痛经历
装软件时由于执行性文件打不开,搜索教程更改了exefile的值,最后整个电脑崩了,所有EXE都打不开,折腾了5个小时,什么办法都试了,甚至重置电脑都不让,打算拿电脑城修电脑了,突然搜到了一…...

stable diffusion实践操作-LyCORIS
系列文章目录 stable diffusion实践操作 文章目录 系列文章目录前言一、LyCORIS是什么?二、使用步骤1.下载2.安装3 使用 二、整理模型1.LoHa-v1.0-pynoise 总结 前言 LyCORIS,可以理解为lora的加强版本。 LyCORIS - Lora beYond Conventional methods,…...

无需公网IP教你如何外网远程访问管家婆ERP进销存
文章目录 前言 1.管家婆服务2. 内网穿透2.1 安装cpolar内网穿透2.2 设置远程访问 3. 固定访问地址4. 配置固定公网访问地址 前言 管家婆辉煌系列产品是中小企业进销存、财务管理一体化的典范软件,历经十余年市场的洗礼,深受广大中小企业的欢迎ÿ…...