Python基础知识点——面向对象
目录
- 面向对象
- 1. 方法
- 2. 特性
- 3. 属性
- 4. 反射: hasattr、getattr、setattr 和 delattr
面向对象
简介:
面向对象编程(Object Oriented Programming-OOP) 是一种解决软件复用的设计和编程方法。 这种方法把软件系统中相近相似的操作逻辑和操作 应用数据、状态,以类的型式描述出来,以对象实例的形式在软件系统中复用,以达到提高软件开发效率的作用。
其实面向对象也很简单,却也很难,熟能生巧。你需要了解类和对象,要学会定义类,创建对象。
特点:
- 类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。
- 方法:类中定义的函数。
- 类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。
- 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。
- 方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。
- 局部变量:定义在方法中的变量,只作用于当前实例的类。
- 实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。
- 继承:即一个派生类(derived class)继承基类(base
class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。 - 实例化:创建一个类的实例,类的具体对象。
- 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。
1. 方法
1.1 静态方法:
- 定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;
- 调用:实例对象和类对象都可以调用。
- 特性: 静态方法只是名义上归类管理,实际上在静态方法里访问不了类或则实例中的任何属性
- 作用:静态方法可以更好的组织代码,防止代码变大后变得比较混乱。
- 静态方法使用场景:
- 我们要写一个只在类中运行而不在实例中运行的方法.
- 经常有一些跟类有关系的功能但在运行时又不需要实例和类参与的情况下需要用到静态方法.
- 比如更改环境变量或者修改其他类的属性等能用到静态方法.
- 这种情况可以直接用函数解决, 但这样同样会扩散类内部的代码,造成维护困难.
class Dog(object):def __init__(self,name):self.name = name@staticmethoddef eat():print("I am a static method")
d = Dog("ChenRonghua")
d.eat() #方法1:使用实例调用Dog.eat() #方法2:使用类直接调用
1.2 类方法:
- 定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);
- 调用:实例对象和类对象都可以调用。
- 作用:无需实例化直接被类调用
- 类方法使用场景: 当我们还未创建实例,但是需要调用类中的方法
class Dog(object):name = '类变量' #在这里如果不定义类变量仅定义实例变量依然报错def __init__(self,name):self.name = '实例变量'self.name = name@classmethoddef eat(self,food):print("%s is eating %s"%(self.name,food))
Dog.eat('baozi') #方法1:使用类直接调用
d = Dog("ChenRonghua")
d.eat("包子") #方法2:使用实例d调用
1.3 实例方法:
- 定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);
- 调用:只能由实例对象调用。
class Dog(object):def __init__(self, name):self.name = name@propertydef eat(self):print(" %s is eating" % self.name)
d = Dog("ChenRonghua")
d.eat()
# 调用会出以下错误, 说NoneType is not callable, 因为eat此时已经变成一个静态属性了,
# 不是方法了, 想调用已经不需要加()号了,直接d.eat就可以了
1.4 魔法方法:
我们在调用python类中的某个方法时,通常会看到某些特殊的方法,它们总被双下划线所包围,像这种格式:“方法名”,这些方法很强大,充满魔力,可以让你实现很多功能。,如果你的对象实现(重载)了这些方法中的某一个,那么这个方法就会在特殊的情况下被 Python 所调用,你可以定义自己想要的行为,而这一切都是自动发生的。因此了解这类方法的作用及用户很有必要,以下对基本魔法方法做出总结,请看:魔法方法表格
type生成类调用顺序:
new : 先于__init__方法,每生成一个实例执行一次,new 类方法创建实例对象
init : __init__方法每生成一个实例就会执行一次,初始化实例对象
call : 后与__init__方法,C()() 使用类再加一个括号调用, C为类名称
del : 析构方法,删除无用的内存对象(当程序结束会自动自行析构方法)
类实例化时魔法方法调用顺序
class Student(object):def __new__(cls, *args, **kwargs):print('__new__')return object.__new__(cls) # 必须返回父类的__new__方法,否则不不执行__init__方法,无法创建实例def __init__(self,name):print('__init__')self.name = namedef __str__(self): # 作用:打印实例时显示指定字符串,而不是内存地址print('__str__')return self.namedef __call__(self, *args, **kwargs): # 当执行C()(*args) 或者 s1(*args) 就会执行__call__print('__call__',*args)def __del__(self): # 作用:清除无用的实例对内存的暂用print('__del__')#1、实例化时机会执行__new__、__init__
s1 = Student('tom')#2、执行 实例() 就会执行__call__ 方法,并将参数传递给__call__函数
s1('call01')#3、当打印实例时就会执行 __str__ 方法下返回的字符串(默认返回的实例地址)
print(s1)#4、析构方法:当删除实例时就会调用 __del__ 方法
del s1
# 析构方法作用:在程序结束后会自动执行析构方法删除所有实例
# 但是在程序运行时有很多实例是无用的,但是python内存回收机制却不会自动删除他们,这样就浪费内存
# 我们可以执行 del s1 ,那么在程序运行时,python内存回收机制会检测到这些实例时无用的,才会删除
# 其实我们执行del s1,并没有回收内存,只不过是摘除门牌号,python内存回收机制发现没有门牌号后会自动回收内存
new & __init__详解:
- new 至少要有一个参数cls,代表要实例化的类,此参数在实例化时由Python解释器自动 提供
- new 必须要有返回值,返回实例化出来的实例,这点在自己实现 new 时要特别注 意,可以return父类 new 出来的实例,或者直接是object的 new 出来的实例
- init 有一个参数self,就是这个 new 返回的实例, init 在 \new 的基础上 可以完成一些其它初始化的动作, init 不需要返回值 我们可以将类比作制造商, new 方法就是前期的原材料购买环节,
init 方法就是在 有原材料的基础上,加工,初始化商品环节。
1.5 单例模式:
__new__方法书写:
class A(object):def __init__(self):print(self)print("这是 init 方法")def __new__(cls):print(id(cls))print("这是 __new__ 方法")ret = object.__new__(cls)print(res)return retprint(id(A))
-->: 12345678987654321a = A()
-->: 12345678987654321
这是 new 方法
-->: <__main__.A object at 0x105b96ac8>
-->: <__main__.A object at 0x105b96ac8>
线程安全的单例:
import threading"""
线程安全的单利模式紧跟with后面的语句被求值后,返回对象的 __enter__() 方法被调用,这个方法的返回值将被赋值给as后面的变量。
当with后面的代码块全部被执行完之后,将调用前面返回对象的 __exit__()方法
"""
def synchronized(func):func.__lock__ = threading.Lock()def lock_func(*args, **kwargs):with func.__lock__:return func(*args, **kwargs)return lock_funcclass Singleton(object):instance = None@synchronizeddef __new__(cls):# 关键在于这,每一次实例化的时候,我们都只会返回这同一个instance对象if not cls.instance:cls.instance = super(Singleton, cls).__new__(cls)return cls.instance
先看类,可以看出这里我们先定义了一个类属性instance,接着我们重写了父类的__new__方法,这个方法就是我们在实例化一个对象时最先调用的一个方法。和其他静态语言不一样,其他静态语言,直接调用了构造方法,一般情况下初始化的程序也写在构造方法之中。而python实例化一个对象和初始化是分开的。__new__是类方法,__init__是实例方法,也就是说,__init__是在对象已经创建完成之后,才执行。
在python3中,调用父类的方法是用super()来调用。所以我们这里的思路就是,还是用父类的方法去创造,但是我们要加一个判断,就是说,当这个对象也就是类属性并不为空的时候,我们就不在实例化,而是返回一个已经实例化的类属性。
线程不安全的单例
class Singleton(object):__instance = Nonedef __new__(cls, name, age):# 如果类属性__instance的值为None,那么就创建一个对象if not cls.__instance:cls.__instance = object.__new__(cls)# 如果已经有实例存在,直接返回return cls.__instancea = Singleton("Zhangsan", 18)
b = Singleton("lisi", 20)print(id(a))
print(id(b))a.age = 30 # 给a指向的对象添加一个属性
print(b.age) # 获取b指向的对象的age属性
del
Python 通过调用 init() 方法构造当前类的实例化对象,而 del() 方法,功能正好和 init() 相反,其用来销毁实例化对象。
事实上在编写程序时,如果之前创建的类实例化对象后续不再使用,最好在适当位置手动将其销毁,释放其占用的内存空间(整个过程称为垃圾回收(简称GC))。
大多数情况下,Python 开发者不需要手动进行垃圾回收,因为 Python 有自动的垃圾回收机制,能自动将不需要使用的实例对象进行销毁。
无论是手动销毁,还是 Python 自动帮我们销毁,都会调用 del() 方法。
2. 特性
面向对象三大特性: 封装,继承,多态
2.1 封装:
- 在类中对数据的赋值、内部调用对外部用户是透明的
- 这使类变成了一个胶囊或容器,里面包含着类的数据和方法 作用:
- 防止数据被随意修改
- 使外部程序不需要关注对象内部的构造,只需要通过对外提供的接口进行直接访问
继承的种类:
- 单继承:一个类继承单个基类
- 多继承:一个类继承多个基类
- 多级继承:一个类继承自单个基类,后者继承自另一个基类
- 分层继承:多个类继承自单个基类
- 混合继承:两种或多种类型继承的混合
封装的好处:
- 将变化隔离
- 便于使用
- 提高复用性
- 提高安全性
封装:将数据进行封装到对象中,以供其他函数进行调用
2.2 Inheritance 继承(代码重用:
- 一个类可以派生出子类,在这个父类里定义的属性、方法自动被子类继承
- 比如CS中的警察和恐怖分子,可以将两个角色的相同点写到一个父类中,然后同时去继承它
- 使用经典类: Person.init(self, name, age)
并重写写父类Person的构造方法,实现,先覆盖,再继承,再重构
继承的优点:
- 节省代码,减少代码的重复性
- 增强耦合性(也就是增强代码可读性)
- 使代码更加规范化
- 子类可以调用父类的所有属性
class D:def talk(self):print('D')class B(D):pass# def talk(self):# print('B')class C(D):passdef talk(self):print('C')class A(B,C):pass# def talk(self):# print('A')a = A()
a.talk()
# 黑人,白人都继承父类Person就可以都有父类的属性和方法了class Person(object):def __init__(self,name,age): #执行Person.__init__(self,name,age)时就会将传入的参数执行一遍self.name = name #所以在BlackPerson中不仅有name,age而且还有sexself.age = ageself.sex = "normal"def talk(self):print("person is talking....")class WhitePerson(Person):passclass BlackPerson(Person):def __init__(self,name,age,strength): #先覆盖,再继承,再重构#先覆盖父类的__init__方法,再继承父类__init__,再加自己的参数Person.__init__(self,name,age) #先继承父类Person,这里self就是BlackPerson本身#先将name,age传给子类BlackPerson,然后调用Person.__init__构造方法将参数出入父类()self.strength = strength #然后再重构自己的方法,即写自己的参数print(self.name,self.age,self.sex)print(self.strength)def talk(self):print("black balabla")def walk(self):print("is walking....")b = BlackPerson("wei er smith",22,"Strong")
b.talk()
b.walk()# 运行结果:
# wei er smith 22 normal
# Strong
# black balabla
# is walking....
# person is talking....
新式类经典类区别:
Python 2.x中默认都是经典类,只有显式继承了object才是新式类
Python 3.x中默认都是新式类,不必显式的继承object
当类是经典类时,多继承情况下,会按照深度优先方式查找
当类是新式类时,多继承情况下,会按照广度优先方式查找
2.3 Polymorphism 多态(接口重用)
- 多态是面向对象的重要特性,简单点说:“一个接口,多种实现”
- 指一个基类中派生出了不同的子类,且每个子类在继承同样的方法名的同时又对父类的方法做了不同的实现
- 这就是同一种事物表现出的多种形态
- 比如黄种人继承了人talk这个功能,但是他说的是中文,而美国人的talk是英文,但是他们是同样的talk
作用:简单的讲就是允许父类调用子类的方法
很多人喜欢将多态与多态性二者混为一谈,然后百思不得其解,其实只要分开看,就会很明朗。
- 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)
- 多态性是指具有不同功能的函数可以使用相同的函数名,这样就可以用一个函数名调用不同内容的函数。在面向对象方法中一般是这样表述多态性:向不同的对象发送同一条消息,不同的对象在接收时会产生不同的行为(即方法)。也就是说,每个对象可以用自己的方式去响应共同的消息。所谓消息,就是调用函数,不同的行为就是指不同的实现,即执行不同的函数。
# 多态举例class Animal:def __init__(self, name): # Constructor of the classself.name = namedef talk(self): # Abstract method, defined by convention onlyraise NotImplementedError("Subclass must implement abstract method")class Cat(Animal):def talk(self):return 'Meow!'class Dog(Animal):def talk(self):return 'Woof! Woof!'animals = [Cat('Missy'),Dog('Lassie')]for animal in animals:print(animal.name + ': ' + animal.talk())# 运行结果:
# Missy: Meow!
# Lassie: Woof! Woof!
Python中多态的特点:
- 只关心对象的实例方法是否同名,不关心对象所属的类型;
- 对象所属的类之间,继承关系可有可无;
- 多态的好处可以增加代码的外部调用灵活度,让代码更加通用,兼容性比较强;
- 多态是调用方法的技巧,不会影响到类的内部设计。
3. 属性
-
类的公有属性
public_attrs:能在类的外部被使用或直接访问。在类内部的方法中使用时 public_attrs_attrs,在类的外部class_name.public_attrs。 -
类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。 -
类的(公有)方法
在类的内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数,self 代表的是类的实例。
self 的名字并不是规定死的,也可以使用 this,但是最好还是按照约定是用 self。 -
类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,只能在类的内部调用 ,不能在类的外部调用。self.__private_methods。
4. 反射: hasattr、getattr、setattr 和 delattr
在做程序开发中,我们常常会遇到这样的需求:需要执行对象里的某个方法,或需要调用对象中的某个变量,但是由于种种原因我们无法确定这个方法或变量是否存在,这是我们需要用一个特殊的方法或机制要访问和操作这个未知的方法或变量,这中机制就称之为反射。
反射就是通过字符串的形式,导入模块;通过字符串的形式,去模块寻找指定函数,并执行。利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动!
四大属性:
- hasattr(ogj,name_str) 判断一个对象里是否有对应的字符串方法
class Dog(object):def eat(self,food):print("eat method!!!")
d = Dog()#hasattr判断对象d是否有eat方法,有返回True,没有返回False
print(hasattr(d,'eat')) #True
print(hasattr(d,'cat')) #False
- getattr(obj,name_str) 根据字符串去获取obj对象里的对应的方法的内存地址
class Dog(object):def eat(self):print("eat method!!!")
d = Dog()if hasattr(d,'eat'): # hasattr判断实例是否有eat方法func = getattr(d, 'eat') # getattr获取实例d的eat方法内存地址func() # 执行实例d的eat方法
#运行结果: eat method!!!
- 使用stattr给类实例对象动态添加一个新的方法
def abc(self):print("%s正在交谈"%self.name)class Person(object):def __init__(self,name):self.name = namep = Person("汇森")
setattr(p,"talk",abc) # 将abc函数添加到对象中p中,并命名为talk
p.talk(p) # 调用talk方法,因为这是额外添加的方法,需手动传入对象# 打印结果 汇森正在交谈setattr(p,"age",30) # 添加一个变量age,复制为30
print(p.age) # 打印结果:30
- delattr删除对象中的变量。注意:不能用于删除方法
class Person(object):def __init__(self,name):self.name = namedef talk(self):print("%s正在交谈"%self.name)p = Person("汇森")delattr(p,"name") # 删除name变量
print(p.name) # 此时将报错
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Go mod常用与高级操作
1. 开启Go module 1.11和1.12版本 将下面两个设置添加到系统的环境变量中 GO111MODULE=on GOPROXY=https://goproxy.io1.13版本之后 这种方式并不会覆盖之前的配置,需要先把系统的环境变量里面的给删掉再设置 go env -w GO111MODULE=on go env -w GOPROXY=https://goproxy.cn,…...
2024/4/15 6:12:18 - 计算机网络的一些基本知识
互联网起源于1969美国的阿帕网,首先用于军事连接。通常internet泛指互联网,而Internet则特指因特网。 互联网、因特网、万维网三者的关系是:互联网包含因特网,因特网包含万维网,凡是能彼此通信的设备组成的网络就叫互联网。 网络核心协议 TCP/IP协议 因特网使用TCP/IP协…...
2024/4/15 6:12:18 - python处理四字节unicode字符串
在开发过程中遇到四字节unicode字符串, 用python各种转码也处理不了, 网上查找资料也没有相关的解决方法… 搞了半天脑瓜壳疼,不过皇天不负有心人最后还是被搞出来了😊。 问题unicode: “\u91cd\u751f\ud848\ude08” python环境下:用站长工具测试可以正常转换使用php进行…...
2024/4/19 19:45:21 - 如何在VMware Workstation 15中安装Redhat Linux 8操作系统
开始之前:下载好Redhat Linux 8系统镜像和Vmware虚拟机软件,都可以去官网下载!检查:虚拟机安装之间先检查电脑是否开启了虚拟化技术(这个非常关键,关系到能不能正常使用虚拟机),如果你的电脑是Win10系统,打开Windows10的任务管理器,选择性能选项卡,单击CPU,在窗口的…...
2024/4/16 11:00:59 - 酒香也怕巷子深:企业网络营销该如何进展?
酒香也怕巷子深:企业网络营销该如何进展? 这是最好的时代,也是最坏的时代,狄更斯在《双城记》中说过这样一句话,而这一句话也在互联网时代下为人们敲响一记警钟。互联网为人们营造了无数的机会,普通人也可以利用互联网媒介摇身一变成為“网红”“大咖”,而同時用户也在互…...
2024/4/24 9:29:30 - 大数相加:第一个数字M代表接下来有几组数据; 接下来每一组数据包含两个数据,数字很大哦; 确保没有前缀0,数据很大;
笔者说:“ 以下代码为笔者大一初入C语言的笔记与作业,谨以此记录我的C学习生涯,重要之处皆有注释,若有疑问大可评论区留言。” c语言中超大整数的加法需要使用字符数组代替int类型逐位相加进位。 需要注意:俩数字相加进位 俩数组右对齐以逐位相加 字符串类型转为int类型相…...
2024/4/24 9:29:29 - ES6和ES5中数据结构的遍历
看了ES6就感觉各种数据结构的遍历方法好多好混乱,就写下来总结下,看看应用场景上有什么区别Array:ES5:(1)Array.prototype.forEach(function(item,index,array){...})(2)Array.prototype.map(function(value,index,array){...//return value,该值会被插入新数组})映射为一个新…...
2024/4/24 9:29:30 - [从零写VIO|第七节]——VINS初始化(作业)
关于第七节VINS的初始化,其内容和代码均整理在下面列出的博客中。视频的主要讲解内容在初始化1,初始化3。 run_euroc前端的数据处理(内容|代码) 初始化1外参标定(内容|代码) 初始化2视觉初始化(内容|代码) 初始化3视觉IMU对齐(内容|代码) 初始化4visualInitialAlign()(内容|代…...
2024/4/24 9:29:27 - JavaFX 背景填充
StackPane stackPane = new StackPane(); stackPane.setPrefSize(300, 300); // x|y 填充起始坐标 // width|height proportional 为true 代表缩放比例, 为false 代表实际尺寸 ImagePattern imagePattern = new ImagePattern(new Image("image/portrait.jpg"), 0, 0,…...
2024/4/24 9:29:33 - Linux学习(七) 进程管理
1.进程概念1.在Linux中,每一个程序都有自己的一个进程,每一个进程都有一个id号2. 每一个进程都会有一个父进程3.服务在后台进行,程序一般在前台进行。2. ps 查看当前系统正在进行的各种进程信息格式: ps 选项-a 显示当前终端运行的所有进程信息-u 以用户的信息显示进程-x…...
2024/4/24 9:29:32 - Tableau创建计算字段——提取乡镇名
//判断 Zldwmc 中是否为镇 IF CONTAINS([Zldwmc],镇) //提取第一个 镇 之前的字符串,并加上 镇 为后缀 THEN SPLIT([Zldwmc],镇,1)+镇 //判断 Zldwmc 中是否为乡 ELSEIF CONTAINS([Zldwmc],乡) //提取第一个 乡 之前的字符串,并加上 乡 为后缀 THEN SPLIT([Zldwmc],乡,1)+乡 …...
2024/4/24 9:29:25 - sklearn中predict()与predict_proba()用法区别
sklearn中predict()与predict_proba()用法区别 学习使用,侵权联系速删 转载:https://www.cnblogs.com/mrtop/p/10309083.html predict:返回的是一个大小为n的一维数组,一维数组中的第i个值为模型预测第i个预测样本的标签; predict_proba:返回的是一个n行k列的数组,第i行…...
2024/4/24 9:29:23 - 小白python学习
python图像读取和处理小结 我的第一篇博客,开心!!! 1 图像读取 1)opencv读取图像 import cv2 dog = cv2.imread(./dog.jpg) cv2.imshow(dog,dog) cv2.waitKey(0) cv2.destroyAllWindows()注意: 1)使用opencv读取图像时,图像名不要使用中文 2)opencv是以窗口的形式显示…...
2024/4/24 9:29:29 - 前端html表格的基本结构
表格的基本结构: (一)标记: 1.width:表示表格宽度,height. 2.border属性:表示表格外边框的宽度 3.align属性:表格显示的位置 (1)left(默认) (2)center (3)right 4.cellspacing属性:单元格之间的间距 5.cellpadding属性:表格中内容和边框的间距 6.frame属性:…...
2024/4/24 9:29:21 - JavaFX Effect
Effect DropShadowInnerShadowShadowBoxBlurGaussianBlurMotionBlurBloomGlowSepiaToneReflectionColorAdjustLighting&Shadow...
2024/4/24 9:29:21 - 第六节 练习7
#include<iostream> #include<iomanip> #include<cstdio> #include<cmath>using namespace std;#define PI 3.14int main() {long a,b;long long c;cout << "输入:";cin >> a >> b; c = a * b;cout << c;return 0;…...
2024/4/24 9:29:19 - 文件从数据库存入磁盘,并打包成zip文件
一、背景由于最近工作时候实现一个文件打包下载,文件数量比较多,自研架构支持不了一次直接从数据查询出导出的文件结果。因次通过分批次进行从数据库查出文件写入磁盘,再从磁盘中生成zip文件,返回给前端。二、数据库文件入磁盘/*** 将数据库中的文件写入到磁盘中* * @param…...
2024/4/21 12:12:05 - 深入理解Redis、ACID特性
Redis事务简介 在Redis中,涉及到事务的基本命令有MULTI、EXEC、DISCARD、WATCH等命令。MULTI命令用于启动Redis的事务,将客户端置为事务状态。 EXEC命令用于取消事务,执行从MULTI到此命令之前的命令队列,将客户端变为非事务状态。 DISCARD命令用于取消事务,清空事务队列中…...
2024/4/27 0:40:27 - leetcode | 面试题58 - II. 左旋转字符串
class Solution { public:string reverseLeftWords(string s, int n) {string str = s + s;string res;for(int i = n; i < s.size() + n; i++){res += str[i];}return res;} };...
2024/4/20 17:55:24 - 《算法竞赛进阶指南》0x01基本算法 快速幂
来源:AcWing 89:a^b 题目描述:求a的b次方对p取模的值,其中1≤a,b,p≤10^9 困惑点:直接采用for循环来算a^b,时间复杂度为O(b),当b比较大时,就容易超时 解决办法:采用快速幂算法,将时间复杂度转换为O(log2n{log_2{n}}log2n) 关键字:快速幂、位运算 快速幂算法思路:实…...
2024/4/16 11:00:59
最新文章
- Docker 备忘清单(一)
随着年龄的增长,记性开始退步,所以接下来打算把常用的一些语言命令,收集整理,以作备忘或查找使用。希望对自己或他人有所用途。 入门 1、入门 1.1、安装 curl -sSL https://get.docker.com/ | sh sudo chmod 777 /var/run/doc…...
2024/4/28 23:54:32 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 从头开发一个RISC-V的操作系统(二)RISC-V 指令集架构介绍
文章目录 前提ISA的基本介绍ISA是什么CISC vs RISCISA的宽度 RISC-V指令集RISC-V ISA的命名规范模块化的ISA通用寄存器Hart特权级别内存管理与保护异常和中断 目标:通过这一个系列课程的学习,开发出一个简易的在RISC-V指令集架构上运行的操作系统。 前提…...
2024/4/24 5:34:22 - OpenHarmony实战:Combo解决方案之ASR芯片移植案例
本方案基于 OpenHarmony LiteOS-M 内核,使用 ASR582X 芯片的 DEV.WIFI.A 开发板进行开发移植。作为典型的 IOT Combo(Wi-FiBLE)解决方案,本文章介绍 ASR582X 的适配过程。 编译移植 目录规划 本方案的目录结构使用 Board 和 So…...
2024/4/24 10:50:46 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/4/28 13:52:11 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/4/28 3:28:32 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/4/26 23:05:52 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/4/28 13:51:37 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/4/27 17:58:04 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/4/27 14:22:49 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/4/28 1:28:33 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/4/28 15:57:13 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/4/27 17:59:30 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/4/25 18:39:16 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/4/28 1:34:08 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/4/26 19:03:37 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/4/28 1:22:35 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/4/25 18:39:14 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/4/26 23:04:58 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/4/27 23:24:42 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/4/28 5:48:52 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/4/26 19:46:12 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/4/27 11:43:08 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/4/27 8:32:30 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) 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 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在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