目录

第一部分 Python基础语法

1. 认识Python

1.1 Python 简介

1.2 第一个Python程序

1.3 PyCharm 的设置

1.3.1 恢复 PyCharm 的初始设置:

1.3.2 PyCharm 安装和启动步骤:

1.3.3 设置启动图标

1.3.4 卸载之前版本的 PyCharm

1.4 多文件项目的演练

2. 注释

2.1 单行注释(行注释)

2.2 多行注释(块注释)

2.3 代码规范:

3. 运算符

3.1 算数运算符

3.2 比较(关系)运算符

3.3 赋值运算符

3.4 身份运算符

3.5 成员运算符

3.6 逻辑运算符

3.7 运算符优先级

4. 变量

4.1 变量定义

4.2 变量的类型

4.2.1 不同类型变量之间的计算

4.2.2 从键盘获取输入信息:input

4.2.3 类型转换函数

4.2.4 格式化输出:print

4.3 公共方法和变量的高级应用

4.3.1 内置函数

4.3.2 切片

第二部分 面向对象编程 —— Object Oriented Programming 简写 OOP

2. 面向对象基础语法

2.1 dir 内置函数和内置方法

2.2 定义简单的类(只包含方法)

2.3 方法中的 self 参数

2.4 初始化方法:__init__

2.5 私有属性和私有方法

第三部分 私有属性和私有方法

3. 封装、继承和多态

3.1 继承

3.1.1 单继承

3.1.2 多继承

3.2 多态

4. 类属性和类方法

4.1 类的结构

4.2 类属性和实例属性

4.3 类方法和静态方法

4.3.1 类方法

4.3.2 静态方法

5. 单例

5.1 单例设计模式

5.2 静态方法: __new__

5.3 Python 中的单例


第一部分 Python基础语法

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

1. 认识Python

1.1 Python 简介

Python 的创始人为吉多·范罗苏姆(Guido van Rossum)。

Python 的设计目标:

一门简单直观的语言并与主要竞争者一样强大 开源,以便任何人都可以为它做贡献 代码像纯英语那样容易理解 适用于短期开发的日常任务

Python 的设计哲学:

优雅、明确、简单

Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事

Python 是完全面向对象的语言,在 Python 中一切皆对象。

可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 C 或 C++ 编写,然后在 Python 程序中使用它们。

1.2 第一个Python程序

执行 Python 程序的三种方式:解释器、交互式运行、IDE运行

Python 是一个格式非常严格的程序设计语言。python 2.x 默认不支持中文

ASCII 字符只包含 256 个字符,不支持中文

  • Python 2.x 的解释器名称是 python
  • Python 3.x 的解释器名称是 python3

为了照顾现有的程序,官方提供了一个过渡版本 —— Python 2.6

提示:如果开发时,无法立即使用 Python 3.0(还有极少的第三方库不支持 3.0 的语法),建议

先使用 Python 3.0 版本进行开发 然后使用 Python 2.6、Python 2.7 来执行,并且做一些兼容性的处理

IPython 是一个 python 的 交互式 shell,比默认的 python shell 好用得多,它支持 bash shell 命令,适合于学习/验证 Python 语法或者局部代码。

集成开发环境(IDE,Integrated Development Environment)—— 集成了开发软件需要的所有工具,一般包括以下工具:

  • 图形用户界面
  • 代码编辑器(支持 代码补全自动缩进
  • 编译器/解释器
  • 调试器(断点单步执行
  • ……

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

PyCharm 是 Python 的一款非常优秀的集成开发环境

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

PyCharm运行工具栏

1.3 PyCharm 的设置

PyCharm 的 配置信息 是保存在 用户家目录下 的 .PyCharmxxxx.x 目录下的,xxxx.x 表示当前使用的 PyCharm 的版本号

1.3.1 恢复 PyCharm 的初始设置:

  • 关闭正在运行的 PyCharm
  • 在终端中执行以下终端命令,删除 PyCharm 的配置信息目录:

$ rm -r ~/.PyCharm2016.3

  • 重新启动 PyCharm

1.3.2 PyCharm 安装和启动步骤:

  • 执行以下终端命令,解压缩下载后的安装包
$ tar -zxvf pycharm-professional-2017.1.3.tar.gz
  • 将解压缩后的目录移动到 /opt 目录下,可以方便其他用户使用

/opt 目录用户存放给主机额外安装的软件

$ sudo mv pycharm-2017.1.3/ /opt/
  • 切换工作目录
$ cd /opt/pycharm-2017.1.3/bin
  • 启动 PyCharm
$ ./pycharm.sh

1.3.3 设置启动图标

  • 在专业版中,选择菜单 Tools / Create Desktop Entry... 可以设置任务栏启动图标
  • 注意:设置图标时,需要勾选 Create the entry for all users
  • 快捷方式文件
  • /usr/share/applications/jetbrains-pycharm.desktop

在 ubuntu 中,应用程序启动的快捷方式通常都保存在 /usr/share/applications 目录下

1.3.4 卸载之前版本的 PyCharm

要卸载 PyCharm 只需要做以下两步工作:

  • 删除解压缩目录
$ sudo rm -r /opt/pycharm-2016.3.1/
  • 删除家目录下用于保存配置信息的隐藏目录
$ rm -r ~/.PyCharm2016.3/

如果不再使用 PyCharm 还需要将 /usr/share/applications/ 下的 jetbrains-pycharm.desktop 删掉

1.4 多文件项目的演练

  • 开发 项目 就是开发一个 专门解决一个复杂业务功能的软件
  • 通常每 一个项目 就具有一个 独立专属的目录,用于保存 所有和项目相关的文件
  • 在 PyCharm 中,要想让哪一个 Python 程序能够执行,必须首先通过 鼠标右键的方式执行 一下
  • 对于初学者而言,在一个项目中设置多个程序可以执行,是非常方便的,可以方便对不同知识点的练习和测试
  • 对于商业项目而言,通常在一个项目中,只有一个 可以直接执行的 Python 源程序

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

让选中的程序可以执行

2. 注释

  • 注释的作用
  • 使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性

2.1 单行注释(行注释)

  • 以 # 开头,# 右边的所有东西都被当做说明文字,而不是真正要执行的程序,只起到辅助说明作用

print("hello python") # 输出 `hello python`

为了保证代码的可读性,# 后面建议先添加一个空格,然后再编写相应的说明文字;为了保证代码的可读性,注释和代码之间 至少要有 两个空格。

2.2 多行注释(块注释)

  • 要在 Python 程序中使用多行注释,可以用 一对 连续的 三个 引号(单引号和双引号都可以)

"""

这是一个多行注释

在多行注释之间,可以写很多很多的内容……

"""

print("hello python")

提示:

  1. 注释不是越多越好,对于一目了然的代码,不需要添加注释
  2. 对于 复杂的操作,应该在操作开始前写上若干行注释
  3. 对于 不是一目了然的代码,应在其行尾添加注释(为了提高可读性,注释应该至少离开代码 2 个空格)
  4. 绝不要描述代码,假设阅读代码的人比你更懂 Python,他只是不知道你的代码要做什么

2.3 代码规范:

  • Python 官方提供有一系列 PEP(Python Enhancement Proposals) 文档,其中第 8 篇文档专门针对 Python 的代码格式 给出了建议,也就是俗称的 PEP 8: 文档地址:https://www.python.org/dev/peps/pep-0008/
  • 谷歌有对应的中文文档:http://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_style_rules/

3. 运算符

3.1 算数运算符

是完成基本的算术运算使用的符号,用来处理四则运算,而“+”和“*”还可以用来处理字符串。

运算符  

描述实例
+10 + 20 = 30
-10 - 20 = -10
*10 * 20 = 200
/10 / 20 = 0.5
//取整除,返回除法的整数部分(商)9 // 2 = 4
%取余数,返回除法的余数9 % 2 = 1
**幂 又称次方、乘方2 ** 3 = 8

3.2 比较(关系)运算符

运算符描述
==检查两个操作数的值是否 相等,如果是,则条件成立,返回 True
!=检查两个操作数的值是否 不相等,如果是,则条件成立,返回 True
>检查左操作数的值是否 大于右操作数的值,如果是,则条件成立,返回 True
<检查左操作数的值是否 小于 右操作数的值,如果是,则条件成立,返回 True
>=检查左操作数的值是否 大于或等于 右操作数的值,如果是,则条件成立,返回 True
<=检查左操作数的值是否 小于或等于 右操作数的值,如果是,则条件成立,返回 True

 

Python 2.x 中判断 不等于 还可以使用 <>

运算符 != 在 Python 2.x 中同样可以用来判断不等于

3.3 赋值运算符

  • 在 Python 中,使用 = 可以给变量赋值。在算术运算时,为了简化代码的编写,Python 还提供了一系列的 与 算术运算符 对应的 赋值运算符,注意:赋值运算符中间不能使用空格
运算符描述实例
=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
//=取整除赋值运算符c //= a 等效于 c = c // a
%=取  (余数)赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c **= a 等效于 c = c ** a

 

3.4 身份运算符

身份运算符比较两个对象的内存位置。常用的有两个身份运算符,如下所述:

运算符描述示例
is判断两个标识符是不是引用同一个对象x is y,类似 id(x) == id(y)
is not判断两个标识符是不是引用不同对象x is not y,类似 id(a) != id(b)

 

辨析

  • is 用于判断 两个变量引用的对象是否为同一个
  • == 用于判断 引用变量的 是否相等

3.5 成员运算符

Python成员运算符测试给定值是否为序列中的成员。 有两个成员运算符,如下所述:

运算符描述
in如果在指定的序列中找到一个变量的值,则返回true,否则返回false
not in如果在指定序列中找不到变量的值,则返回true,否则返回false

3.6 逻辑运算符

运算符逻辑表达式描述
andx and y只有 x 和 y 的值都为 True,才会返回 True;否则只要 x 或者 y 有一个值为 False,就返回 False
orx or y只要 x 或者 y 有一个值为 True,就返回 True;只有 x 和 y 的值都为 False,才会返回 False
notnot x如果 x 为 True,返回 False;如果 x 为 False,返回 True

 

3.7 运算符优先级

  • 以下表格的算数优先级由高到最低顺序排列:
运算符描述
**幂 (最高优先级)
*
/
%取余数
//取整除
+加法
-减法
<=比较运算符
<
>
>=
==等于运算符
!=
=赋值运算符
%=
/=
//=
-=
+=
*=
**=
is身份运算符
is not
in成员运算符
not in 
not逻辑运算符
or
and

程序执行原理

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

Python程序执行示意图

  1. 操作系统会首先让 CPU 把 Python 解释器 的程序复制到 内存 中
  2. Python 解释器 根据语法规则,从上向下 让 CPU 翻译 Python 程序中的代码
  3. CPU 负责执行翻译完成的代码

Python 的解释器有多大?

  • 执行以下终端命令可以查看 Python 解释器的大小
# 1. 确认解释器所在位置$ which python# 2. 查看 python 文件大小(只是一个软链接)$ ls -lh /usr/bin/python# 3. 查看具体文件大小$ ls -lh /usr/bin/python2.7

 

 

4. 变量

4.1 变量定义

  • 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 改变量 才会被创建
  • 可以用 其他变量的计算结果 来定义变量
  • 变量名 只有在 第一次出现 才是 定义变量

变量名 = 值

使用交互式方式,如果要查看变量内容,直接输入变量名即可,不需要使用 print 函数使用解释器执行,如果要输出变量的内容,必须要要使用 print 函数

4.2 变量的类型

  • 在 Python 中定义变量是 不需要指定类型(在其他很多高级语言中都需要),Python 可以根据 = 等号右侧的值,自动推导出变量中存储数据的类型
  • 数据类型可以分为 数字型 和 非数字型 数字型 整型 (int):Python3中的所有整数都表示为长整数。 因此,长整数没有单独的数字类型。 浮点型(float) 布尔型(bool) :真 True 非 0 数 —— 非零即真,假 False 0。 复数型 (complex):复数是由x + yj表示的有序对的实数浮点数组成,其中x和y是实数,j是虚数单位。 非数字型:有些运算符还支持这些数据类型。 字符串(str):加号(+)是字符串连接运算符,星号(*)是重复运算符。 列表(list) 元组(tuple) 字典(dict)

提示:在 Python 2.x 中,整数 根据保存数值的长度还分为:

int(整数) long(长整数)

  • 使用 type 函数可以查看一个变量的类型
In [1]: type(name)

4.2.1 不同类型变量之间的计算

  1. 数字型变量 之间可以直接计算
  • 在 Python 中,两个数字型变量是可以直接进行 算数运算的
  • 如果变量是 bool 型,在计算时 True 对应的数字是 1 False 对应的数字是 0
  1. 字符串变量 之间使用 + 拼接字符串
  2. 字符串变量 可以和 整数 使用 * 重复拼接相同的字符串
  3. 数字型变量 和 字符串 之间 不能进行其他计算

4.2.2 从键盘获取输入信息:input

  • 在 Python 中可以使用 input 函数从键盘等待用户的输入
  • 用户输入的 任何内容 Python 都认为是一个 字符串

字符串变量 = input("提示信息:")

4.2.3 类型转换函数

函数说明
int(x)将 x 转换为一个整数
float(x)将 x 转换到一个浮点数
str(x)将对象x转换为字符串表示形式
tuple(s)将s转换为元组
list(s)将s转换为列表

 

price = float(input("请输入价格:"))

4.2.4 格式化输出:print

  • 如果希望输出文字信息的同时,一起输出 数据,就需要使用到 格式化操作符
  • % 被称为 格式化操作符,专门用于处理字符串中的格式 包含 % 的字符串,被称为格式化字符串 % 和不同的 字符 连用,不同类型的数据 需要使用 不同的格式化字符
格式化字符含义
%s字符串
%d有符号十进制整数
%06d表示输出的整数显示位数,不足的地方使用 0 补全
%f浮点数
%.2f表示小数点后只显示两位
%%输出 %

 

  • 语法格式如下:
print("格式化字符串" % 变量1)print("格式化字符串" % (变量1, 变量2...))

4.3 公共方法和变量的高级应用

4.3.1 内置函数

Python 包含了以下内置函数:

函数描述备注
len(item)计算容器中元素个数 
del(item)删除变量del 有两种方式
max(item)返回容器中元素最大值如果是字典,只针对 key 比较
min(item)返回容器中元素最小值如果是字典,只针对 key 比较
cmp(item1, item2)比较两个值,-1 小于,0 相等,1 大于Python 3.x 取消了 cmp 函数

 

注意字符串 比较符合以下规则: "0" < "A" < "a"。

4.3.2 切片

描述Python表达式结果支持的数据类型
切片"0123456789"[::-2]"97531"字符串、列表、元组
  • 切片 使用 索引值 来限定范围,从一个大的 字符串 中 切出 小的 字符串
  • 列表 和 元组 都是 有序 的集合,都能够 通过索引值 获取到对应的数据
  • 字典 是一个 无序 的集合,是使用 键值对 保存数据

第二部分 面向对象编程 —— Object Oriented Programming 简写 OOP

  • 面向过程 —— 怎么做?
  • 把完成某一个需求的 所有步骤 从头到尾 逐步实现
  • 根据开发需求,将某些 功能独立 的代码 封装 成一个又一个 函数
  • 最后完成的代码,就是顺序地调用 不同的函数
  • 特点:
  • 注重 步骤与过程,不注重职责分工
  • 如果需求复杂,代码会变得很复杂
  • 开发复杂项目,没有固定的套路,开发难度很大!
  • 面向对象 —— 谁来做? 相比较函数,面向对象 是更大的封装,根据职责在 一个对象中封装多个方法 在完成某一个需求前,首先确定 职责 —— 要做的事情(方法)
  • 根据 职责 确定不同的 对象,在 对象 内部封装不同的 方法(多个)
  • 最后完成的代码,就是顺序地让 不同的对象 调用 不同的方法
  • 特点:
  • 注重 对象和职责,不同的对象承担不同的职责
  • 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供的固定套路
  • 需要在面向过程基础上,再学习一些面向对象的语法
  • 类和对象
  •  是对一群具有 相同 特征 或者 行为 的事物的一个统称,是抽象的,特征 被称为 属性,行为 被称为 方法
  • 对象 是 由类创建出来的一个具体存在,是类的实例化。
  • 在程序开发中,要设计一个类,通常需要满足一下三个要素: 类名 这类事物的名字,满足大驼峰命名法 属性 这类事物具有什么样的特征 方法 这类事物具有什么样的行为

2. 面向对象基础语法

2.1 dir 内置函数和内置方法

在 Python 中 对象几乎是无所不在的,我们之前学习的 变量、数据、函数 都是对象。在 Python 中可以使用以下两个方法验证:

  • 在 标识符 / 数据 后输入一个点 .,然后按下 TAB 键,iPython 会提示该对象能够调用的方法列表。
  • 使用内置函数 dir 传入 标识符 / 数据,可以查看对象内的 所有属性及方法
  • 提示__方法名__格式的方法是 Python 提供的 内置方法 / 属性。
序号方法名类型作用
01__new__方法 创建对象时,会被 自动 调用
02__init__方法对象被初始化时,会被 自动 调用
03 __del__方法对象被从内存中销毁前,会被 自动 调用
04__str__方法 返回对象的描述信息,print 函数输出使用

 

提示 利用好 dir() 函数,在学习时很多内容就不需要死记硬背了。

2.2 定义简单的类(只包含方法)

面向对象是更大的封装,在 一个类中封装多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了!

定义一个只包含方法的类:

class 类名:def 方法1(self, 参数列表):passdef 方法2(self, 参数列表):pass

方法 的定义格式和之前学习过的函数几乎一样,区别在于第一个参数必须是 self。

注意类名的 命名规则 要符合 大驼峰命名法。当一个类定义完成之后,要使用这个类来创建对象,语法格式如下:

对象变量 = 类名()

在面向对象开发中,引用的概念是同样适用的!

使用 print输出 对象变量,默认情况下,是能够输出这个变量 引用的对象 是 由哪一个类创建的对象,以及 在内存中的地址(十六进制表示)。

提示:在计算机中,通常使用 十六进制 表示 内存地址。

如果在开发中,希望使用 print输出 对象变量 时,能够打印 自定义的内容,就可以利用 __str__这个内置方法了:

class Cat:def __init__(self, new_name):self.name = new_nameprint("%s 来了" % self.name)def __del__(self):print("%s 去了" % self.name)def __str__(self):return ("我是小猫:%s" % self.name)tom = Cat("Tom")print(tom)

注意:__str__方法必须返回一个字符串。

2.3 方法中的 self 参数

在 Python 中,要 给对象设置属性,非常的容易,只需要在 类的外部的代码 中直接通过 对象.设置一个属性即可,但是不推荐使用:

class Cat:"""这是一个猫类"""def eat(self):print("小猫爱吃鱼")def drink(self):print("小猫在喝水")tom = Cat()# 给对象设置属性tom.name = "Tom"

因为:对象属性的封装应该封装在类的内部

由哪一个对象调用的方法,方法内的 self就是哪一个对象的引用

  • 在类封装的方法内部,self 就表示当前调用方法的对象自己,在方法内部:
  • 可以通过 self.访问对象的属性,也可以通过 self.调用对象的其他方法。
  • 调用方法时,程序员不需要传递 self 参数。
  • 在 类的外部,通过变量名.访问对象的 属性和方法
  • 在 类封装的方法中,通过 self.访问对象的 属性和方法

2.4 初始化方法:__init__

  • 当使用 类名() 创建对象时,会 自动 执行以下操作:
  • 为对象在内存中分配空间 —— 创建对象
  • 为对象的属性设置初始值 —— 初始化方法(__init__)

__init__ 方法是 专门 用来定义一个类具有哪些属性的方法!

  • 在 __init__ 方法内部使用 self.属性名 = 属性的初始值 就可以定义属性,定义属性之后,再使用 类创建的对象,都会拥有该属性。
  • 在开发中,如果希望在 创建对象的同时,就设置对象的属性,可以对 __init__ 方法进行 改造: 把希望设置的属性值,定义成 __init__方法的参数 在方法内部使用 self.属性 = 形参 接收外部传递的参数 在创建对象时,使用 类名(属性1, 属性2...) 调用
class Cat:def __init__(self, name):print("初始化方法 %s" % name)self.name = name...tom = Cat("Tom")...lazy_cat = Cat("大懒猫")...

2.5 私有属性和私有方法

应用场景

  • 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到
  • 私有属性 就是 对象 不希望公开的 属性
  • 私有方法 就是 对象 不希望公开的 方法

定义方式

  • 在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有属性或方法:

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

第三部分 私有属性和私有方法

伪私有属性和私有方法Python 中,并没有 真正意义 的 私有在给 属性、方法 命名时,实际是对名称做了一些特殊处理,使得外界无法访问到处理方式:在 名称 前面加上_类名 => _类名__名称

# 私有属性,外部不能直接访问到print(xiaofang._Women__age)# 私有方法,外部不能直接调用xiaofang._Women__secret()

提示:在日常开发中,不要使用这种方式,访问对象的 私有属性 或 私有方法。

3. 封装、继承和多态

面向对象三大特性:

  1. 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中
  2. 继承 实现代码的重用,相同的代码不需要重复的编写
  3. 多态 不同的对象调用相同的方法,产生不同的执行结果,增加代码的灵活度

3.1 继承

3.1.1 单继承

继承的概念:子类 拥有 父类 以及 父类的父类 中封装的所有 属性 和 方法。

class 类名(父类名):pass

当 父类 的方法实现不能满足子类需求时,可以对方法进行重写(override)重写 父类方法有两种情况:

  1. 覆盖 父类的方法:父类的方法实现 和 子类的方法实现完全不同
  2. 具体的实现方式,就相当于在 子类中 定义了一个 和父类同名的方法并且实现。
  3. 对父类方法进行 扩展:子类的方法实现 中 包含 父类的方法实现
  4. 在人类中 重写 父类的方法;在需要的位置使用 super().父类方法 来调用父类方法的执行代码;其他的位置针对子类的需求,编写 子类特有的代码实现。

关于 super

  • 在 Python 中 super 是一个 特殊的类
  • super()就是使用 super 类创建出来的对象
  • 最常 使用的场景就是在 重写父类方法时,调用 在父类中封装的方法实现

调用父类方法的另外一种方式:在 Python 2.x 时,如果需要调用父类的方法,还可以使用以下方式:父类名.方法(self)。目前在 Python 3.x 还支持这种方式,但不推荐使用,因为一旦 父类发生变化,方法调用位置的 类名 同样需要修改。

父类的 私有属性 和 私有方法

子类对象 不能 在自己的方法内部,直接 访问 父类的 私有属性 或 私有方法子类对象 可以通过 父类 的 公有方法 间接 访问到 私有属性 或 私有方法

私有属性、方法 是对象的隐私,不对外公开,外界 以及 子类 都不能直接访问 私有属性、方法 通常用于做一些内部的事情

3.1.2 多继承

子类 可以拥有 多个父类,并且具有 所有父类 的 属性 和 方法,例如:孩子 会继承自己 父亲 和 母亲 的 特性。

class 子类名(父类名1, 父类名2...):pass

Python 中的 MRO算法(Method Resolution Order)

  • 如果 不同的父类 中存在 同名的方法,子类对象 在调用方法时,会调用 哪一个父类中的方法呢?
  • 提示:开发时,应该尽量避免这种容易产生混淆的情况! —— 如果 父类之间 存在 同名的属性或者方法,应该 尽量避免使用多继承
  • Python 中针对 类 提供了一个 内置属性__mro__ 可以查看 方法 搜索顺序 在搜索方法时,是按照 mro 的输出结果 从左至右 的顺序查找的 如果在当前类中 找到方法,就直接执行,不再搜索 如果 没有找到,就查找下一个类 中是否有对应的方法,如果找到,就直接执行,不再搜索 如果找到最后一个类,还没有找到方法,程序报错

MRO 是 method resolution order —— 方法搜索顺序,主要用于 在多继承时判断 方法、属性 的调用 路径

新式类与旧式(经典)类

  • 新式类:以 object 为基类的类,推荐使用
  • 经典类:不以 object为基类的类,不推荐使用

在 Python 3.x 中定义类时,如果没有指定父类,会 默认使用 object作为该类的 基类 —— Python 3.x 中定义的类都是 新式类,在 Python 2.x 中定义类时,如果没有指定父类,则不会以 object 作为 基类。

  • 为了保证编写的代码能够同时在 Python 2.x 和 Python 3.x 运行!今后在定义类时,如果没有父类,建议统一继承自 object:
class 类名(object):pass

object 是 Python 为所有对象提供的 基类,提供有一些内置的属性和方法,可以使用 dir(object) 函数查看。

3.2 多态

面向对象三大特性:

  1. 封装 根据 职责 将 属性 和 方法 封装 到一个抽象的 类 中 定义类的准则
  2. 继承 实现代码的重用,相同的代码不需要重复的编写 设计类的技巧 子类针对自己特有的需求,编写特定的代码
  3. 多态 不同的 子类对象 调用相同的 父类方法,产生不同的执行结果 增加代码的灵活度 以 继承 和 重写父类方法 为前提 调用方法的技巧,不会影响到类的内部设计

多态 更容易编写出出通用的代码,做出通用的编程,以适应需求的不断变化!

案例:在 Dog 类中封装方法 game:普通狗只是简单的玩耍定义 XiaoTianDog 继承自 Dog,并且重写 game 方法:哮天犬需要在天上玩耍定义 Person 类,并且封装一个 和狗玩 的方法:在方法内部,直接让 狗对象 调用 game 方法。多态示例:

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

Person 类中只需要让 狗对象 调用 game 方法,而不关心具体是 什么狗。

4. 类属性和类方法

4.1 类的结构

通常会把:创建出来的 对象 叫做 类的实例创建对象的 动作 叫做 实例化对象的属性 叫做 实例属性对象调用的方法 叫做 实例方法每一个对象 都有自己独立的内存空间,保存各自不同的属性多个对象的方法,在内存中只有一份,在调用方法时,需要把对象的引用传递到方法内部

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

各个不同的属性,独一份的方法

在 Python 中,类是一个特殊的对象。

Python 中 一切皆对象:

class AAA: 定义的类属于 类对象 obj1 = AAA() 属于 实例对象

在程序运行时,类同样会被加载到内存在程序运行时,类对象在内存中只有一份,使用 一个类可以创建出很多个对象实例除了封装实例的属性和方法外,类对象还可以拥有自己的属性和方法——类属性、类方法,通过 类名. 的方式可以 访问类的属性 或者 调用类的方法。类的结构:

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

4.2 类属性和实例属性

类属性 就是 类对象中定义的属性通常用来记录与这个类相关的特征类属性不会用于记录具体对象的特征示例:定义一个 工具类,每件工具都有自己的 name:需求 —— 知道使用这个类,创建了多少个工具对象

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

属性的获取机制

在 Python 中 属性的获取 存在一个 向上查找机制

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

因此,要访问类属性有两种方式:

  • 类名.类属性
  • 对象.类属性 (不推荐,因为如果使用 对象.类属性 = 值 赋值语句,只会给对象添加一个属性,而不会影响到类属性的值

4.3 类方法和静态方法

4.3.1 类方法

  • 类属性 就是针对 类对象 定义的属性 使用 赋值语句 在 class 关键字下方可以定义 类属性 类属性 用于记录 与这个类相关 的特征
  • 类方法 就是针对 类对象 定义的方法 在 类方法 内部可以直接访问 类属性 或者调用其他的 类方法

语法如下

@classmethoddef 类方法名(cls):pass
  • 类方法需要用 修饰器 @classmethod 来标识,告诉解释器这是一个类方法
  • 类方法的 第一个参数 应该是 cls 由 哪一个类 调用的方法,方法内的 cls 就是 哪一个类的引用 这个参数和 实例方法 的第一个参数是 self 类似 提示 使用其他名称也可以,不过习惯使用 cls
  • 通过 类名. 调用 类方法调用方法时,不需要传递 cls 参数
  • 在方法内部 可以通过 cls. 访问类的属性 也可以通过 cls. 调用其他的类方法

示例

  • 定义一个 工具类,每件工具都有自己的 name
  • 需求 —— 在  封装一个 show_tool_count 的类方法,输出使用当前这个类,创建的对象个数
@classmethoddef show_tool_count(cls):"""显示工具对象的总数"""print("工具对象的总数 %d" % cls.count)

4.3.2 静态方法

  • 在开发时,如果需要在  中封装一个方法,这个方法: 既 不需要 访问 实例属性 或者调用 实例方法 也 不需要 访问 类属性 或者调用 类方法
  • 这个时候,可以把这个方法封装成一个 静态方法

语法如下

@staticmethoddef 静态方法名():pass
  • 静态方法 需要用 修饰器 @staticmethod 来标识,告诉解释器这是一个静态方法
  • 通过 类名. 调用 静态方法

示例

  • 静态方法 show_help 显示游戏帮助信息
  • 类方法 show_top_score 显示历史最高分
  • 实例方法 start_game 开始当前玩家的游戏

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

探索

  • 实例方法 —— 方法内部需要访问 实例属性 实例方法 内部可以使用 类名. 访问类属性
  • 类方法 —— 方法内部 只需要访问 类属性
  • 静态方法 —— 方法内部,不需要访问 实例属性 和 类属性

5. 单例

5.1 单例设计模式

  • 设计模式 设计模式 是 前人工作的总结和提炼,通常,被人们广泛流传的设计模式都是针对 某一特定问题 的成熟的解决方案 使用 设计模式 是为了可重用代码、让代码更容易被他人理解、保证代码可靠性
  • 单例设计模式 目的 —— 让  创建的对象,在系统中 只有 唯一的一个实例 每一次执行 类名() 返回的对象,内存地址是相同的
  • 单例设计模式的应用场景 音乐播放 对象 回收站 对象 打印机 对象 ……

5.2 静态方法: __new__

  • 使用 类名() 创建对象时,Python 的解释器 首先 会 调用 __new__ 方法为对象 分配空间
  • __new__ 是一个 由 object 基类提供的 内置的静态方法,主要作用有两个: 在内存中为对象 分配空间 返回 对象的引用
  • Python 的解释器获得对象的 引用 后,将引用作为 第一个参数,传递给 __init__ 方法

重写 __new__ 方法 的代码非常固定!

  • 重写 __new__ 方法 一定要 return super().__new__(cls),否则 Python 的解释器 得不到 分配了空间的 对象引用就不会调用对象的初始化方法
  • 注意:__new__ 是一个静态方法,在调用时需要 主动传递 cls 参数

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

5.3 Python 中的单例

  • 单例 —— 让  创建的对象,在系统中 只有 唯一的一个实例 定义一个 类属性,初始值是 None,用于记录 单例对象的引用 重写 __new__ 方法 如果 类属性 is None,调用父类方法分配空间,并在类属性中记录结果 返回 类属性 中记录的 对象引用

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

只执行一次初始化工作

  • 在每次使用 类名() 创建对象时,Python 的解释器都会自动调用两个方法: __new__ 分配空间 __init__ 对象初始化
  • 在对 __new__ 方法改造之后,每次都会得到 第一次被创建对象的引用
  • 但是:初始化方法还会被再次调用

需求

  • 让 初始化动作 只被 执行一次

解决办法

  1. 定义一个类属性 init_flag 标记是否 执行过初始化动作,初始值为 False
  2. 在 __init__ 方法中,判断 init_flag,如果为 False 就执行初始化动作
  3. 然后将 init_flag 设置为 True
  4. 这样,再次 自动 调用 __init__ 方法时,初始化动作就不会被再次执行 了

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

Tips

1、Python 能够自动的将一对括号内部的代码连接在一起:

'''**需求*** 定义 `input_password` 函数,提示用户输入密码* 如果用户输入长度 < 8,抛出异常* 如果用户输入长度 >=8,返回输入的密码'''def input_password():# 1\. 提示用户输入密码pwd = input("请输入密码:")# 2\. 判断密码长度,如果长度 >= 8,返回用户输入的密码if len(pwd) >= 8:return pwd# 3\. 密码长度不够,需要抛出异常# 1> 创建异常对象 - 使用异常的错误信息字符串作为参数ex = Exception("密码长度不够")# 2> 抛出异常对象raise extry:user_pwd = input_password()print(user_pwd)except Exception as result:print("发现错误:%s" % result)

2、一个对象的 属性 可以是 另外一个类创建的对象。

3、在__init__方法中定义类的属性时,如果 不知道设置什么初始值,可以设置为 None):None 关键字 表示 什么都没有,表示一个 空对象,没有方法和属性,是一个特殊的常量。可以将 None 赋值给任何一个变量

在 Python 中针对 None 比较时,建议使用is 判断

4、eval() 函数十分强大 —— 将字符串 当成 有效的表达式 来求值 并 返回计算结果

看完这篇文章,你的Python基础就差不多了(附419集精品教程)

 

在开发时千万不要使用 eval 直接转换 input 的结果,举个例子:

__import__('os').system('ls')# 等价代码import osos.system("终端命令")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

相关文章

  1. LeetCode 886. 可能的二分法(着色DFS/BFS/拓展并查集)

    文章目录1. 题目2. 解题2.1 DFS2.2 BFS2.3 并查集 1. 题目 给定一组 N 人(编号为 1, 2, …, N), 我们想把每个人分进任意大小的两组。 每个人都可能不喜欢其他人,那么他们不应该属于同一组。 形式上,如果 dislikes[i] = [a, b],表示不允许将编号为 a 和 b 的人归入同一组…...

    2024/4/24 8:43:13
  2. Openshift部署升级Redis5.0.8设置密码及数据持久化

    Openshift升级Redis5.0.8设置密码及数据持久化1. 拉取镜像redis5.0.82. 准备redis.conf文件,并修改内容3. 编写Dockerfile文件5. 修改openshift中的redis镜像版本及密码6. 修改Deployments的yaml文件 使用docker启动redis可参照构建镜像方法 本次使用的是Dockerfile构建镜像,…...

    2024/4/24 8:43:12
  3. HIT-ICS2020大作业

    计算机系统大作业题 目 程序人生-Hello’s P2P专 业 人工智能 学   号 学 生 指 导 教 师 计算机科学与技术学院2020年3月摘 要通过阐述分析给定的hello.c的整个生命周期,探究从生命周期…...

    2024/4/24 8:43:18
  4. 最完整的java运行环境搭建详解

    java运行环境搭建详解 卸载JDK删除java的安装目录 删除环境变量->系统变量里面的JAVA_HOME 删除环境变量->系统变量里面path下关于java的目录 打开cmd输入java -version看是否卸载成功安装JDK百度搜索JDK8找到官方下载地址 同意协议 下载电脑对应的版本(64或者32位) 双…...

    2024/4/24 8:43:10
  5. java研发过程中遇到问题怎么办?

    来源:https://blog.csdn.net/huhigher/article/details/106396782「有大佬在吗?」 你是不是经常在群里碰到这样的提问者,或者难道你就是!由于我建了几个技术群,经常会碰到这样的同学,前面几次我会直接@对方,然后告诉他有问题直接问就好了,有人看到就会回答了,不然,谁…...

    2024/4/24 8:43:09
  6. Altium Designer之图片logo导入笔记

    图片logo导入分为两种:丝印类型、露铜1.在PCB页面:文件→运行脚本→弹出运行条目对话框→浏览→选择.PRJSCR文件→点击运行脚本→确定→弹出对话框图1-1 选择导入文件图1-2 导入对话框2.点击加载→选择.bmp格式图片→convent转换→exit→将logo从顶层切换到丝印层→复制到P…...

    2024/4/24 8:43:11
  7. 基于AM5728 DSP+ARM的物流机器人,实现自动化分拣投递

    基于AM5728 DSP+ARM的物流机器人,实现自动化分拣投递 功能概述与应用领域国内物流业起步较晚,发展水平较低,在信息技术的应用方面与发达国家有很大差距,发达国家已普遍使用的一些技术设备在国内还很少使用,我国在物流费用上的经济损失每年达数百亿元,实现物流信息化已成为…...

    2024/4/24 8:43:07
  8. springboot +jdbc 操作数据库 ;springboot +jpa 执行

    一、springboot +jdbc 操作数据库开发中不使用 jpa和mybatis操作数据库,只使用jdbc的方式来操作可以采用如下方式:1. 导入依赖<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> </dependency> <d…...

    2024/4/24 8:43:06
  9. svn使用总结

    一、检出svn指定版本修改的文件的路径 1.针对svn的文件夹—>右键---->点击TortoiseSVN–Show log—Show log。如下图:2.可以选择指定日期及版本号的日志,在下框中会显示对应修改的代码路径 3.可直接选中复制下框中的内容即可得到修改的代码路径。导出修改的路径及代码类…...

    2024/4/24 8:43:05
  10. 洛谷:P1025 数的划分(DFS剪枝)

    题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。 例如:n=7,k=3,下面三种分法被认为是相同的。 1,1,5 1,5,1 5,1,1 问有多少种不同的分法。 输入格式 n,k (6<n≤200,2≤k≤6) 输出格式 1个整数,即不同的分法。 输入 7 3 输出 4 #include&l…...

    2024/4/24 8:43:04
  11. 微信小程序——获取用户的运动步数

    程序获取用户信息步骤点击参考微信文档中的授权 首先程序先向用户申请访问哪些权限 用户做出选择后返回给程序 程序携带权限访问服务器 如果用户允许则返回信息 如果用户为允许则不返回自定义函数getUserRun为获取用户的微信运动数据 页面加载调用此函数函数中执行下面操作 1. …...

    2024/4/24 8:43:03
  12. 用python搭建一个临时服务器

    在当前目录下创建一个pythn服务器,端口号为8888,可以实现文件上传 让别人下载当前目录下的aaa.py文件 查看本机ip,例如192.168.1.100 python -m http.server 8888再别的机器去上下载文件 wget http://192.168.1.100:8888/aaa.py...

    2024/4/24 8:43:02
  13. JSP标签2

    这里写目录标题1.jsp标签2 1.jsp标签2 设置y标签的代码 ying.tld<?xml version="1.0" encoding="UTF-8" ?><taglib xmlns="http://java.sun.com/xml/ns/j2ee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:sc…...

    2024/4/24 8:43:01
  14. dockerfile编写项目

    项目一:dockerfile编写可道云 [root@docker01 kode]# ll total 13596 -rw-r--r-- 1 root root 320 May 27 17:26 default.conf -rw-r--r-- 1 root root 392 May 27 17:18 dockerfile -rwxr-xr-x 1 root root 80 May 27 17:49 init.sh -rw-r--r-- 1 root root …...

    2024/4/24 8:43:08
  15. scp远程文件拷贝命令

    在linux 下scp 命令主要用来在不同主机之间做数据的安全拷贝的。scp 命令可以将文件从本地的计算机中拷贝到远程的主机中,或者从远程计算机中拷贝文件到本地主机,scp命令使用的安全加密的协议,所以在远程拷贝数据的时候会比较安全,不会被黑客截取。 如果服务器之间配置了ss…...

    2024/4/15 6:37:09
  16. MySql——Explain关键字

    做MySQL性能优化的时候第一步就是使用Explain关键字查看执行计划,让我们知道MySQL是如何执行我们的SQL语句的,从而我们可以根据这个对我们的SQL语句进行优化。 Explain能干嘛 1、查询表的读取顺序 2、查询数据读取操作的操作类型 3、哪些索引可以被使用 4、哪些索引实际被使用…...

    2024/4/16 14:15:02
  17. 边界经纬度的获取

    通过高德开放平台获取区、市、省的边界经纬度 首先在浏览器中打开:高德开放平台——行政区边界查询输入想要查询边界的 区、市、省然后右键浏览器——检查 选择Network,然后再次点击查询,会发现下方多了一条请求,点击这条请求选择response,响应的结果里就有边界的经纬度信…...

    2024/4/16 14:16:19
  18. JavaScript语言的发展史

    要想更好的掌握JavaScript,了解其历史发展是非常重要的,同时也更能体现出作为一名前端工程师的职业素养。一、什么是JavaScriptJavaScript是一种脚本语言,用来编写脚本来控制其他大型应用程序(比如浏览器)。脚本语言大部分是解释型语言,特点是必须通过解释器,解释一行执…...

    2024/4/20 6:30:25
  19. Jigglypuff

    题目链接:Jigglypuff我们只需要找到一个 1x x2 这样的结构,那么就存在两条相同的路。 所以题目要求三条路,只要有两个这样的结构可以互相到达即可。 但是要注意如果存在 1xy xy2 1x xy y2 这样的结构也是可以的。AC代码: #pragma GCC optimize("-Ofast","-f…...

    2024/4/24 8:42:59
  20. Python自制文字PK小游戏----菜鸟作业(思路整理)

    自学Python的第n天,第一次发博文╮(─▽─)╭ 作业名称(项目名称?):PK小游戏 目的:熟练运用循环和条件判断 进阶:初识调用模块,掌握完成项目的流程 一明确项目目标 模拟与敌人PK环境,文字输出过程和最终结果。 制作游戏: 1.0版本–手动设置玩家与敌人属性,进行PK。 …...

    2024/4/24 8:42:58

最新文章

  1. android studio项目实战——备忘录(附源码)

    成果展示&#xff1a; 1.前期准备 &#xff08;1&#xff09;在配置文件中添加权限及启动页面顺序 ①展开工程&#xff0c;打开app下方的AndroidManifest.xml,添加权限&#xff0c;如下&#xff1a; <uses-permission android:name"android.permission.CAMERA"…...

    2024/5/2 20:31:54
  2. 梯度消失和梯度爆炸的一些处理方法

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

    2024/3/20 10:50:27
  3. composer常见错误解决

    在Java中&#xff0c;常见的问题和解决方法包括&#xff1a; 内存不足错误&#xff1a;Java应用程序在运行时可能会遇到内存不足的错误。可以通过增加JVM的堆内存大小来解决&#xff0c;可以通过设置-Xms和-Xmx参数来指定初始堆大小和最大堆大小。 java -Xms2G -Xmx4G YourAppl…...

    2024/4/30 3:27:03
  4. 深入理解springboot

    第五章 访问数据库 1.配置数据源 在applicaiton.properties中 spring.datasource.urljdbc:mysql://localhost:3306/chapter5 第九章 springmvc 1.总体流程 http请求发送给控制器&#xff0c;控制器与业务层交互&#xff0c;业务层使用noSQL缓存&#xff0c;业务层与数据访问层…...

    2024/4/30 15:25:26
  5. 【外汇早评】美通胀数据走低,美元调整

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

    2024/5/1 17:30:59
  6. 【原油贵金属周评】原油多头拥挤,价格调整

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

    2024/5/2 16:16:39
  7. 【外汇周评】靓丽非农不及疲软通胀影响

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

    2024/4/29 2:29:43
  8. 【原油贵金属早评】库存继续增加,油价收跌

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

    2024/5/2 9:28:15
  9. 【外汇早评】日本央行会议纪要不改日元强势

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

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

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

    2024/4/27 14:22:49
  11. 【外汇早评】美欲与伊朗重谈协议

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

    2024/4/28 1:28:33
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

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

    2024/4/30 9:43:09
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

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

    2024/4/27 17:59:30
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

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

    2024/5/2 15:04:34
  15. 【外汇早评】美伊僵持,风险情绪继续升温

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

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

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

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

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

    2024/4/29 20:46:55
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

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

    2024/4/30 22:21:04
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

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

    2024/5/1 4:32:01
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

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

    2024/4/27 23:24:42
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

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

    2024/4/28 5:48:52
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

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

    2024/4/30 9:42:22
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

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

    2024/5/2 9:07:46
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

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

    2024/4/30 9:42:49
  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