此文章的内容来自《流畅的Python(第一版)》的第七章:函数装饰器和闭包。因为自己初学Python,做笔记可以说完全是抄书,到后面越来越没心劲儿了,所以不再抄书(做笔记)了,,从页数p171,节数为7.8.2之后的内容不想也不需要续了。

(无奈~~~)

函数装饰器用于在源码中“标记”函数,以某种方式增强函数的行为。想掌握装饰器,必须理解闭包。除了在装饰器中有用处之外,闭包函数回调式异步编程和函数式编程风格的基础。

这篇文章是为了解释清楚函数装饰器的工作原理,包括最简单的注册装饰器和较复杂的参数化装饰器。

1 装饰器基础知识

装饰器是可调用的对象,其参数是另一个函数(被装饰的函数)。装饰器可能会处理被装饰的函数,然后把它返回,或者将其替换成另一个函数或可调用对象。

假如有个名为decorate的装饰器:

@decorate
def target():print('running target()')

上述代码的效果与下述写法一样:

def target():print('running target()')target = decorate(target)

两种写法的最终结果一样:上述两个代码片段执行完毕后得到的target不一定是原来那个target函数,而是decorate(target)返回的函数。

为了确认被装饰的函数会被替换,请看下面的控制台对话。

# 装饰器通常把函数替换成另一个函数>>> def deco(func):
...     def inner():
...         print('running inner()')
...     return inner # deco返回inner函数对象
...
>>> @deco
... def target(): # 使用deco装饰target
...     print('running target()')
...
>>> target() # 调用被装饰的target其实会运行inner
running inner()
>>> target # 审查对象,发现target现在是inner的引用
<function deco.<locals>.inner at 0x000001FB4640A550>

严格来说,装饰器只是语法糖。如上所示,装饰器可以像常规的可调用对象那样调用,其参数是另一个函数。综上,装饰器的一大特性是,能把被装饰的函数替换成其他函数。第二个特性是,装饰器在加载模块时立即执行。

2 Python何时执行装饰器

装饰器的一个关键特性是,它们在被装饰的函数定义之后立即运行。这通常是在导入时(即Python加载模块时)。下面是示例代码registration.py:

registry = []def register(func):print('running register(%s)' % func)registry.append(func)return func@register
def f1():print('running f1()')@register
def f2():print('running f2()')def f3():print('running f3()')def main():print('running main()')print('registry ->', registry)f1()f2()f3()if __name__ == '__main__':main()

把registration.py当做脚本得到的输出如下:

running register(<function f1 at 0x000002B32DA25430>)
running register(<function f2 at 0x000002B32DA254C0>)
running main()
registry -> [<function f1 at 0x000002B32DA25430>, <function f2 at 0x000002B32DA254C0>]
running f1()
running f2()
running f3()

注意,register在模块中其他函数之前运行(两次)。调用register时,传给它的参数是被装饰的函数,例如<function f1 at 0x000002B32DA25430>。加载模块后,registry中有两个被装饰函数的引用:f1和f2。f1、f2、f3这三个函数都是只有main明确调用它们时才执行。

如果导入registration.py模块(不作为脚本运行),输出如下:

>>> import registration
running register(<function f1 at 0x00000238FDF2A550>)
running register(<function f2 at 0x00000238FDF2A5E0>)

查看registry的值如下:

>>> registration.registry
[<function f1 at 0x00000238FDF2A550>, <function f2 at 0x00000238FDF2A5E0>]

上面的registration.py想强调,函数装饰器在导入模块时立即执行,而被装饰的函数只在明确调用时运行。这突出了Python程序员所说的导入时和运行时之间的区别。

考虑到装饰器在真实代码中的常用方式,registration.py有两个不寻常的地方:

1、装饰器函数与被装饰的函数在同一模块中定义。事实上,装饰器通常在一个模块中定义,然后应用到其他模块中的函数上。

2、register装饰器返回的函数与通过参数传入的函数是相同的。事实上,大多数装饰器会在内部定义一个函数,然后将这个函数返回。

3 使用装饰器改进“策略模式”

使用注册装饰器可以改进《流畅的Python》书中6.1节中的电商促销折扣示例。

示例6-6的主要问题是,定义体中有函数的名称,但是best_promo用来判断那个折扣幅度最大的promos列表中也有函数名称。这种重复是个问题,因为新增策略函数后可能会忘记把他添加到promos列表中,导致best_promo忽略新策略,而且不报错,为系统引入了不易察觉的缺陷。下面的代码使用注册装饰器解决了这个问题:

# promos列表中的值使用promotion装饰器填充promos = [] # 存放策略的列表def promotion(promo_func): # promotion将promo_func添加到promos列表中,然后原封不动地将函数返回promos.append(promo_func)return promo_func@promotion
def fidelity(order):"""为积分为1000或以上的顾客提供5%折扣"""return order.total() * .05 if order.customer.fidelity >= 1000 else 0@promotion
def bulk_item(order):"""单个商品为20个或以上时提供10%折扣"""discount = 0for item in order.cart: # 遍历购物车的商品if item.quantity >= 20:discount += item.total() * .1return discount@promotion
def large_order(order):"""订单中的不同商品达到10个或以上时提供7%折扣"""distinct_items= {item.product for item in order.cart}if len(distinct_items) >= 10:return order.total() * .07return 0def best_promo(order): # best_promo无需修改,因为它依赖promos列表"""选择可用的最佳折扣"""return max(promo(order) for promo in promos)

上面的代码有几个优点:

  • 促销策略函数无需使用特殊的名称(不需要以_promo结尾)
  • @promotion装饰器突出了被装饰的函数的作用,还便于临时禁用某个策略函数——只需把装饰器注释掉
  • 促销折扣策略可以在其他模块中定义,只要使用@promotion装饰即可。

不过,多数装饰器会修改被装饰的函数。通常装饰器会定义一个内部函数,然后将其返回,替换被装饰的函数。使用内部函数的代码几乎都要靠闭包才能正确运作。为了理解闭包,我们先来了解Python的变量作用域。

4 变量作用域规则

在下面的代码中,定义并测试了一个函数,此函数读取两个变量的值:局部变量a——函数的参数;变量b——这个函数没定义它。

>>> def f1(a):
...     print(a)
...     print(b)
...
>>> f1(3)
3
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "<stdin>", line 3, in f1
NameError: name 'b' is not defined

出现错误很正常。在代码中,若先给全局变量b赋值,再调用f1,则不会出错:

>>> b = 6
>>> f1(3)
3
6

下面看一个特殊的例子。下面代码中的f2函数的两行代码和上面的f1一样,然后为b赋值,再打印b的值。可是在赋值前,第二个print失败了:

>>> # b是局部变量,因为在函数的定义体中给它赋值了
>>> b = 6
>>> def f2(a):
...     print(a)
...     print(b)
...     b = 9
...
>>> f2(3)
3
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "<stdin>", line 3, in f2
UnboundLocalError: local variable 'b' referenced before assignment

注意,首先输出了3,这表明print(a)语句执行了。但是第二个语句print(b)执行不了。感觉会打印6,因为有个全局变量b,而且是在print(b)之后为局部变量b赋值的。

事实上,Python编译函数的定义体时,它判断b是局部变量,因为在函数中给他赋值了。生成的字节码证实了这种判断,Python会尝试从本地环境获取b。后面调用f2(3)时,f2的定义体会获取并打印局部变量a的值,但是尝试获取局部变量b的值时,发现b没有绑定值。

这不是缺陷,而是设计选择:Python不要求声明变量,但是假定在函数定义体中赋值的变量是局部变量

如果在函数中赋值时想让解释器把b当成全局变量,要使用global声明:

>>> b = 6
>>> def f3(a):
...     global b
...     print(a)
...     print(b)
...     b = 9
...
>>> f3(3)
3
6
>>> b
9
>>> f3(3)
3
9

5 闭包

闭包指延伸了作用域的函数,其中包含函数定义体中引用、但是不在定义体中定义的非全局变量。闭包的关键是能访问定义体之外定义的非全局变量。

概念难以掌握,下面通过示例理解:假如有个名为avg的函数,它的作用是计算不断增加的序列值的均值;例如,整个历史中某个商品的平均收盘价。每天都会增加新价格,因此平均值要考虑至目前为止所有的价格。

起初,avg是这样用的:

>>> avg(10) # 事实上还没有定义avg函数,但是下面的结果符合预期
10.0
>>> avg(11)
10.5
>>> avg(10)
11

下面是一个【计算运动平均值的】average_oo.py:

class Averager():def __init__(self):self.series = []def __call__(self, new_value):self.series.append(new_value)total = sum(self.series)return total/len(self.series)

Average的实例是可调用对象:

>>> avg = Averager()
>>> avg(10)
10.0
>>> avg(11)
10.5
>>> avg(12)
11.0

下面是函数式实现计算移动平均值,使用高阶函数make_averager。averager.py:

def make_averager(): # # 计算移动平均值的高阶函数series = []def averager(new_value):series.append(new_value)total = sum(series)return total/len(series)return averager

调用make_averager时,返回一个averager函数对象。每次调用averager时,它会把参数添加到系列中,然后计算当前平均值。下面的代码为了测试averager.py:

>>> avg = make_averager()
>>> avg(10)
10.0
>>> avg(11)
10.5
>>> avg(12)
11.0

注意,averager.py与average_oo.py有共通之处:调用Averager()或make_averager()得到一个可调用对象avg,他会更新历史值,再计算当前均值。在average_oo.py中,avg是Averager的实例;在averager.py中,avg是内部函数averager。不管怎样,只需调用avg(n),把n放入序列值中,然后重新计算均值。

Averager类的实例avg在self.series里存储历史值。但是第二个示例中的avg函数在哪里查找series呢?

注意series是make_averager函数的局部变量,因为在函数的定义体中初始化了series:series = []。但是,调用avg(10)时,make_averager函数已经返回了,而它的本地作用域也一去不复返了。

在averager函数中,series是自由变量(free variable),指未在本地作用域中绑定的变量。

审查返回的make_averager对象,发现Python在__code__属性(表示编译后的函数定义体)中保存局部变量和自由变量的名称。下面是【审查make_averager创建的函数】的代码:

>>> avg.__code__.co_varnames
('new_value', 'total')
>>> avg.__code__.co_freevars
('series',)

series的绑定在返回的avg函数的__closure__属性中。avg.__closure__中的各个元素对应于avg.__code__.co_freevars中的一个名称。这些元素是cell对象,有个cell_content属性,保存着真正的值。这些属性的值如下:

>>> avg.__code__.co_freevars
('series',)
>>> avg.__closure__
(<cell at 0x000001E467125B80: list object at 0x000001E467141400>,)
>>> avg.__closure__[0].cell_contents
[10, 11, 12]

综上,闭包是一种函数,它会保留定义函数时存在的自由变量的绑定,这样调用函数时,虽然定义作用域不可用了,但是仍能使用那些绑定。

注意,只有嵌套在其他函数中的函数才可能需要处理不在全局作用域中的外部变量

6 nonlocal声明

在上一节的averager.py中,程序将所有值存储在历史序列中,然后在每次调用averager时使用sum求和。更好的方式是,只存储目前的总值和元素个数,然后使用这两个数计算均值。

下面的代码有缺陷,只是为了阐明观点:

def make_averager(): # averager1.py 计算移动平均值的高级函数,不保存所有历史值,但是有缺陷count = 0total = 0def averager(new_value):count += 1total += new_valuereturn total/countreturn averager

尝试使用上面的函数,会得到如下结果:

>>> avg = make_averager()
>>> avg(10)
Traceback (most recent call last):File "<stdin>", line 1, in <module>File "D:\其他\Pycharm学习\averager1.py", line 6, in averagercount += 1
UnboundLocalError: local variable 'count' referenced before assignment

问题是,当count是数字或任何不可变类型时,count += 1语句的作用其实与count = count + 1一样。这样的话,相当于在averager的定义体中为count赋值了,这会把count变为局部变量。total变量也受这个问题影响。、

averager.py没遇到这个问题,因为代码中没有给series赋值,只是调用series.append,并把它传给sum和len。也就是说,代码利用了列表是可变的对象这一事实。

但是对数字、字符串、元组等不可变类型来说,只能读取,不能更新。如果尝试重新绑定,如count = count + 1,其实会隐式创建局部变量count。这样的话,count就不是自由变量了,因此不会保存在闭包中。

Python引入nonlocal声明,作用是把变量标记为自由变量,即使在函数中为变量赋予新值,也会变为自由变量。若为nonlocal声明的变量赋予新值,闭包中保存的绑定会更新。make_averager的最终正确实现版如下:

def make_averager():count = 0total = 0def averager(new_value):nonlocal count, totalcount += 1total += new_valuereturn total / countreturn averager

7 实现一个简单的装饰器

下面的代码定义了一个装饰器,功能是在每次调用被装饰的函数时计时,然后把经过的时间、传入的参数和调用的结果打印出来(clockdeco.py):

import timedef clock(func):def clocked(*args): # 定义内部函数clocked,它接受任意个定位参数t0 = time.perf_counter()result = fun(*args)elapsed = time.perf_counter() - t0name = func.__name__arg_str = ', '.join(repr(arg) for arg in args)print('[%0.8fs] %s(%s) -> %r' % (elapsed, name, arg_str, result))return resultreturn clocked # 返回内部函数,取代被装饰的函数

下面的代码演示了clock装饰器的用法(clockdeco_demo.py):

# clockdeco_demo.py 使用clock装饰器import time
from clockdeco import clock@clock
def snooze(seconds):time.sleep(seconds)@clock
def factorial(n):return 1 if n < 2 else n * factorial(n - 1)if __name__ == '__main__':print('*' * 40, 'Calling snooze(.123)')snooze(.123)print('*' * 40, 'Calling factorial(6)')print('6! =', factorial(6))

输出结果为:

**************************************** Calling snooze(.123)
[0.12318430s] snooze(0.123) -> None
**************************************** Calling factorial(6)
[0.00000200s] factorial(1) -> 1
[0.00004970s] factorial(2) -> 2
[0.00008730s] factorial(3) -> 6
[0.00011450s] factorial(4) -> 24
[0.00014130s] factorial(5) -> 120
[0.00017300s] factorial(6) -> 720
6! = 720

装饰器的典型行为是:把被装饰的函数替换为新函数,二者接受相同的参数,而且(通常)返回被装饰函数本该返回的值,同时还会做些额外操作。

clockdeco.py实现的装饰器有以下缺点:不支持关键字参数,而且覆盖了被装饰函数的__name__和__doc__属性。下面的代码(clockdeco2.py)使用functools.wraps装饰器把相关的属性从func复制到clocked中,而且代码还可以处理关键字参数:

import time
import functools
def clock(func):@functools.wraps(func) # 装饰器将相关的属性从func复制到clocked中def clocked(*args, **kwargs):t0 = time.time()result = func(*args, **kwargs)elapsed = time.time() - t0name = func.__name__arg_lst = []if args:arg_lst.append(', '.join(repr(arg) for arg in args))if kwargs:pairs = ['%s=%r' % (k, w) for k, w in sorted(kwargs.items())]arg_lst.append(', '.join(pairs))arg_str = ', '.join(arg_lst)print('[%0.8fs] %s(%s) -> %r' % (elapsed, name, arg_str, result))return resultreturn clocked

8 标准库中的装饰器

下面介绍标准库中的两个值得关注的装饰器。

8.1 使用functools.lru_cache做备忘

functools.lru_cache是非常实用的装饰器,它实现了备忘功能。这是一项优化技术,它把耗时的函数的结果保存起来,避免传入相同的参数时重复计算。lru三个字母是“Least Recently Used”的缩写,表明缓存不会无限制增长,一段时间不用的缓存条目会被丢弃。

生成第n个斐波那契数这种慢速递归函数适合使用lru_cache。下面的代码(fibo_demo.py)未使用lru_cache装饰器,递归方式非常耗时。代码如下:

from clockdeco import clock@clock
def fibonacci(n):if n < 2:return nreturn fibonacci(n-2) + fibonacci(n-1)
if __name__ == '__main__':print(fibonacci(6))

运行fibo_demo.py,结果如下,除了最后一行,其余输出都是clock装饰器生成的:

[0.00000040s] fibonacci(0) -> 0
[0.00000050s] fibonacci(1) -> 1
[0.00005350s] fibonacci(2) -> 1
[0.00000030s] fibonacci(1) -> 1
[0.00000030s] fibonacci(0) -> 0
[0.00000020s] fibonacci(1) -> 1
[0.00001230s] fibonacci(2) -> 1
[0.00002400s] fibonacci(3) -> 2
[0.00008970s] fibonacci(4) -> 3
[0.00000020s] fibonacci(1) -> 1
[0.00000020s] fibonacci(0) -> 0
[0.00000020s] fibonacci(1) -> 1
[0.00001140s] fibonacci(2) -> 1
[0.00002280s] fibonacci(3) -> 2
[0.00000020s] fibonacci(0) -> 0
[0.00000030s] fibonacci(1) -> 1
[0.00001150s] fibonacci(2) -> 1
[0.00000020s] fibonacci(1) -> 1
[0.00000030s] fibonacci(0) -> 0
[0.00000030s] fibonacci(1) -> 1
[0.00001210s] fibonacci(2) -> 1
[0.00002340s] fibonacci(3) -> 2
[0.00004610s] fibonacci(4) -> 3
[0.00008010s] fibonacci(5) -> 5
[0.00018170s] fibonacci(6) -> 8
8

上述代码浪费时间的地方很明显:fibonacci(1)调用了8次,fibonacci(2)调用了5次。下面的代码(fibo_demo2.py)使用lru_cache装饰器,性能会显著改善:

import functools
from clockdeco import clock@functools.lru_cache() # 必须像常规函数那样调用lru_cache。有括号(),这样做使得lru_cache可接受配置参数,稍后会详细说明
@clock # 叠放了装饰器:@lru_cache()应用到@clock返回的函数上
def fibonacci(n):if n < 2:return nreturn fibonacci(n-2) + fibonacci(n-1)if __name__ == '__main__':print(fibonacci(6))

这样一来,执行时间减半了,而且n的每个值只调用一次函数:

[0.00000090s] fibonacci(0) -> 0
[0.00000140s] fibonacci(1) -> 1
[0.00641200s] fibonacci(2) -> 1
[0.00000090s] fibonacci(3) -> 2
[0.00643280s] fibonacci(4) -> 3
[0.00000070s] fibonacci(5) -> 5
[0.00645350s] fibonacci(6) -> 8
8

除优化递归算法外,lru_cache在从web中获取信息的应用中也能发挥巨大作用。

lru_cache可以使用两个可选参数来配置。它的签名(签名是表示调用函数的方式,即定义了函数的输入和输出)是:

functools.lru_cache(maxsize=128, typed=False)

maxsize参数指定存储多少个调用的结果。缓存满了以后,旧的结果会被扔掉,以腾出空间。为得到最佳性能,maxsize应设为2的幂。typed参数如果设为True,就会把不同参数类型得到的结果分开保存,即把通常认为相等的浮点数和整数参数(如1和1.0)区分开。因为lru_cache使用字典存储结果,而且键根据调用时传入的定位参数和关键字参数创建,所以被lru_cache装饰的函数,它的所有参数都必须是可散列(不懂就去百度)的。

下面介绍functools.singledispatch

8.2 单分配泛函数

假设在开发一个调试web应用的工具,我们像生成HTML,显示不同类型的Python对象。我们可能编写这样的函数:

import htmldef htmlize(obj):content = html.escape(repr(obj))return '<pre>pre</pre>'.format(content)

上面的函数适用于任何Python类型。现在,想做个拓展,让函数使用特别的方式显示某些类型的数据:

  • str:把内部的换行符替换为’<br>\n‘;不使用<pre>,而是使用<p>。
  • int:以十进制和十六进制显示数字。
  • list:输出一个HTML列表,根据各个元素的类型进行格式化。

我们想要的行为(生成HTML的htmlize函数,调整了几种对象的输出)如下:

>>> # 本段所有代码的输出结果都是理想输出,后面会列出真正实现了这些功能的代码
>>> htmlize({1, 2, 3}) # 1
'<pre>{1, 2, 3}</pre>'
>>> htmlize(abs)
'<pre>&lt;built-in function abs&gt;</pre>'
>>> htmlize('Heimlich & Co.\n- a game') # 2
'<p>Heimlich &amp; Co.<br>\n- a game</p>'
>>> htmlize(42) # 3
'<pre>42 (0x2a)</pre>'
>>> print(htmlize(['alpha', 66, {3, 2, 1}])) # 4
<ul>
<li><p>alpha</p></li>
<li><pre>66 (0x42)</pre></li>
<li><pre>{1, 2, 3}</pre></li>
</ul>

注释:
1.默认情况下,在<pre><\pre>中显示HTML转义后的对象字符串表示形式。
2.为str对象显示的也是HTML转义后的字符串表示形式,不过放在<p></p>中,而且使用<br>表示换行。
3.int显示为十进制和十六进制两种形式,放在<pre></pre>中。
4.各个列表项目根据各自的类型格式化,整个列表则渲染成HTML列表。

此文章的内容来自《流畅的Python(第一版)》的第七章:函数装饰器和闭包。因为自己初学Python,做笔记可以说完全是抄书,到后面越来越没心劲儿了,所以不再抄书(做笔记)了,,从页数p171,节数为7.8.2之后的内容不想也不需要续了。

(无奈~~~)

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 关于cookies的提取

    登录函数,返回的cookie 是一个字典形式 def login(): url=“https://uat-osm-console.amwaynet.com.cn/OA/AmwayFramework/PortalWeb/Login?ReturnUrl=%2FOA%2FAmwayFramework%2FPortalWeb%2FDBSITE” data={ “__RequestVerificationToken”: “Nip79G6fzEshWHjFDFLeBrfFC7…...

    2024/4/20 16:34:23
  2. 使用Keil语言的嵌入式C编程教程(下)

    使用Keil语言的嵌入式C编程教程(下) 用8051单片机进行定时器/计数器的计算与编程 延迟是应用软件开发中的重要因素之一。然而,在实现定时延迟的过程中,正常的延迟并不能给出克服这一问题的宝贵结果。定时器和计数器是微控制器的硬件组成部分,在许多应用中使用它来提供具有…...

    2024/4/17 23:13:40
  3. Codeforces Round #627 (Div. 3) D. Pair of Topics(思维)(构造cmp)

    Pair of Topics题目大意:(文末有原题)分别给出连个数组a[n] 和 b[n],判断a中有几对整数使a[i] + a[j] > b[i] + b[j];思路:另外一个数组v[n],v[i]来保存a[i] - b[i],此时,只需判断v中有几个整数对的和大于0;首先 正数 + 正数 > 0、正数 + 0 > 0,所以 分别记…...

    2024/4/14 20:44:27
  4. idea注释模板设置

    Idea自定义注释 1.1、以配置Class的注释为例,其他文件的类似,打开File - settings之后,找到下图的位置,选中Class后修改备注,变量和参数跟eclipse差不多就不多讲了。配置完这里后再新建class就会应用新的注释模板了,但是我也只能发现新建的时候应用,如果已有方法还是不会…...

    2024/4/17 4:08:25
  5. C语言 可变参数

    函数的参数数量,自由变动。/****************************************************************************** *Complier:VS2017 *Project:variable-argument 可变参数 *Author:Rise *******************************************************************************/ #in…...

    2024/4/14 20:44:26
  6. 华为初级网络工程师(HCIA)——网络基础

    本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 网络概述 硬件方面:通过介质(网线、光纤、电磁波等)将网络设备和终端连接起来。 软件方面:操作系统(windows等等)、应用软件(QQ等)、应用程序互相通讯。 …...

    2024/4/14 20:44:25
  7. 算法:12306的余票算法。

    我看过网上称某宝工程师写的12306文章,觉得狗屁不通。他们将每个站点独立成一件商品,每次购、退票都需要查询删改库存,造成巨大的数据库操作开销。其实这是个简单到不能再简单的算法。我以8个站点的班次举例,票面现值pm每位代表一个站点,客户乘坐需求gp也一样每位代表他需…...

    2024/4/14 20:44:23
  8. 视频加字幕最快方法

    Arctime是一个全新理念的可视化字幕创作软件,可以运行在Mac、Windows、Linux上。借助精准的音频波形图,可以快速创建和编辑时间轴,还可以高效的进行文本编辑、翻译。支持SRT、ASS外挂字幕格式,并可以通过交换工程文件或与伙伴协同工作。字幕编辑完成后,仅需单击“视频转码…...

    2024/4/14 20:44:24
  9. 2020.06.13【NOIP普及组】模拟赛C组38(2

    2020.06.13【NOIP普及组】模拟赛C组38题解目录排名见此直入主题大佬大佬![T1:圆圈](https://gmoj.net/junior/#contest/show/1746/0)题目描述输入输出格式样例难度:⭐⭐~⭐⭐⭐⭐不等标签:思维题我的思路实际分数:AC[T2:迷宫](https://gmoj.net/junior/#contest/show/174…...

    2024/4/25 0:14:33
  10. 【协议工程学习笔记】1:协议模型,协议通信环境,协议提供的服务

    这节学习书上2.1~2.2.2节。协议设计是协议工程所有流程中的第一步,用于产生协议文本初稿,也就是用自然语言描述所设计的协议是什么内容。 1 协议模型 复杂的协议一般用分层的方式设计,如下图是OSI体系结构中的n层协议模型,每个实体(entity) 表示能发送和接收信息的硬件或软…...

    2024/4/25 0:14:32
  11. Zookeeper 源码解析

    目录 :【Zookeeper】源码分析之序列化【Zookeeper】源码分析之持久化(一)之FileTxnLog【Zookeeper】源码分析之持久化(二)之FileSnap【Zookeeper】源码分析之持久化(三)之FileTxnSnapLog【Zookeeper】源码分析之Watcher机制(一)【Zookeeper】源码分析之Watcher机制(二…...

    2024/4/25 0:14:31
  12. SpringBoot入门教程04——Environment详解

    SpringBoot入门教程04——Environment详解 前言 上一节我们讲述了SpringBoot配置文件详解 传送门 细心的同学会发现里面其实有一个小坑 比如我们修改user.properties文件,修改后内容如下: user.name=henry1111 user.age=16本地开发环境默认切到dev,即spring.profile.active=…...

    2024/4/25 0:14:33
  13. 剑指 Offer 10_1 斐波那契数列(java代码实现)

    剑指 Offer 10- I. 斐波那契数列 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案…...

    2024/4/25 0:14:29
  14. 用method reference 替换lambda expression,提升可读性

    lambda 表达式:Map<WeightLevel, List<Human>> map = humans.stream().collect(groupingBy((human) -> {if(human.getWeight() < 80) return WeightLevel.LIGHT;else if(human.getWeight() >= 80 && human.getWeight() <= 140) return Weight…...

    2024/4/25 0:14:28
  15. 这个日期格式是什么? 2011-08-12T20:17:46.384Z

    本文翻译自:What is this date format? 2011-08-12T20:17:46.384Z I have the following date: 2011-08-12T20:17:46.384Z . 我有以下日期: 2011-08-12T20:17:46.384Z 。 What format is this? 这是什么格式? Im trying to parse it with Java 1.4 via DateFormat.getDate…...

    2024/4/25 0:14:27
  16. 中缀表达式转换为后缀表达式(Java)

    中缀表达式转换为后缀表达式(Java) 博客说明文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!步骤初始化两个栈:运算符栈 s1 和储存中间结果的栈 s2从左至右扫描中缀表达式遇到操作数时,将其压 s2遇到运算符…...

    2024/4/25 0:14:28
  17. Java Web:使用内置方法的set/getAtrribute方法来获取、传递参数,完成模拟登陆过程模块

    1.构建登录页面 使用属性: action:把登录用户输入的账号密码信息使用post的方法提交到"LoginCheck.jsp"核对账号密码是否正确<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%><% String path=reques…...

    2024/4/25 0:14:32
  18. 3D动画透视效果(20)

    透视距离越小,我们看到的物体越大!...

    2024/4/25 0:14:24
  19. 手写 avl tree

    为什么需要 avl tree avl tree 又称 平衡二叉树。主要在排序二叉树的基础上进行的一个优化。避免排序二叉树不平衡,从而严重影响查询效率 avl tree 的特点 平衡二叉树也叫平衡二叉搜索树。 它可以是一颗空树或者它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是…...

    2024/4/25 0:14:23
  20. 第二章 操作系统运行环境

    第二章 操作系统运行环境1.处理器状态机状态转换领会特权指令和非特权指令特权指令:只能由操作系统使用的指令非特权指令:用户可以使用的指令控制寄存器及程序状态字用户可见寄存器编译器分配,减少程序运行时访问内存储器的次数如:数据寄存器、地址寄存器、条件码寄存器控制…...

    2024/4/25 0:14:22

最新文章

  1. 为什么近年来机器学习这么火!!

    机器学习&#xff08;Machine Learning&#xff09;是一种人工智能&#xff08;AI&#xff09;的分支&#xff0c;它让计算机能够通过数据学习和改进&#xff0c;而无需明确的编程。这意味着机器学习系统可以从经验中学习&#xff0c;逐步提高其性能。它基于统计学和数学算法&a…...

    2024/4/27 2:30:42
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. ROS2高效学习第十章 -- ros2 高级组件之大型项目中的 launch 其二

    ros2 高级组件之大型项目中的 launch 1 前言和资料2 正文2.1 启动 turtlesim&#xff0c;生成一个 turtle &#xff0c;设置背景色2.2 使用 event handler 重写上节的样例2.3 turtle_tf_mimic_rviz_launch 样例 3 总结 1 前言和资料 早在ROS2高效学习第四章 – ros2 topic 编程…...

    2024/4/26 22:12:26
  4. 自定义OPPO-r9s的kernel内核,并开启安卓支持docker

    0. 版本说明 本文提供了OPPO手机r9s的内核编译方法&#xff0c;并开机支持docker。用的是开源lineage14.1的rom。 我这边基于开源lineage14.1&#xff0c;打了一个docker内核编译镜像(17380582683/r9s)&#xff0c;大家可以在容器里&#xff0c;手动打出完整的rom包zip文件。…...

    2024/4/23 2:13:16
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/26 18:09:39
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/26 20:12:18
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/26 23:05:52
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/25 18:39:23
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/25 18:39:22
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/25 18:39:22
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/26 21:56:58
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/25 16:48:44
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/26 16:00:35
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/25 18:39:16
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/25 18:39:16
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/26 19:03:37
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/26 22:01:59
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/25 18:39:14
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/26 23:04:58
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/25 2:10:52
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/25 18:39:00
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/26 19:46:12
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/25 18:38:58
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/25 18:38:57
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57