蒙珣的博客

活好当下,做好今天该做的事情。

0%

近期,法学名师罗翔在一场毕业会上的即兴致辞,引发关注。

他开门见山地表示:“我很想祝大家一帆风顺,但我觉得这不现实。”

常被人认作理想主义者的他,抛出一个问题:在顺势时可以坚持的原则,逆势时是否还要坚持,以及如何坚持?

罗翔认为,抛弃原则获得的成功,将无法获得内心的平静。

他援引纪伯伦语,指出这世间有两种痛,一种是野心还没实现的痛苦,还有一种是野心成就后的无聊,很多人都困在两种痛苦里双向切换。

他又以孔子以例,直言无论君子还是小人,都有可能遭受厄运,但二者的区别在于,小人会随时改变原则,但君子会守住他的原则。

“如果世界接受不了我们的理想,这不是我们的问题,是世界的问题。不容然后见君子。”

他强调真的勇敢,是对良善的坚持,这种坚持本身就是一种幸福,祝愿各位年轻人能找到内心的宁静,一生平安。

Read more »

  1. 简述面向对象的三大特性?

    • 封装:将方法封装到类中 或 将数据封装到对象中,以便以后使用

    • 继承:将类中的公共的方法提取到基类中去实现

    • 多态:Python默认支持多态(这种方式称之为鸭子类型),最简单的基础下面的这段代码即可

      1
      2
      3
      def func(arg):
      v1 = arg.copy() # 浅拷贝
      print(v1)
      Read more »

查看启动容器的镜像源数据

docker inspect classify_service

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
"Networks": {
"docker-cluster-yml_default": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"classify_service",
"classify_service",
"3e4da4c588e0"
],
"NetworkID": "1e720d1e75de556314b9bf0f81eae19f4fdb4b3e403d628632aa0ca73045087d",
"EndpointID": "f8eab1e55b3ca4437510c6fbc53fb92e57b63091f3bca329fc7db97f23ff91d0",
"Gateway": "172.21.0.1",
"IPAddress": "172.21.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:15:00:02",
"DriverOpts": null
}

Read more »

拉取镜像

docker pull mysql:8.0.18

编写docker compose

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
version: "3" 
services:
mysql:
# 使用的镜像和TAG
image: mysql:8.0.18
# docker重启后,是否重启
restart: always
# 创建的容器名称
container_name: mysql8
# 指定端口号
ports:
- "33060:3306"
environment:
MYSQL_ROOT_PASSWORD: admin
# 挂载卷
volumes:
- /data/docker/mysql/conf:/etc/mysql/conf.d
- /data/docker/mysql/log:/var/log/mysql
- /data/docker/mysql/data:/var/lib/mysql
Read more »

过程支持

过程(procedure)或函数是程序员进行结构化编程的工具,两者均有助于提高程序的可理解性和代码的可重用性。过程允许程序员每次只需将精力集中在任务的一部分,由于参数能传递数值并返回结果,因此参数承担过程与其他程序、数据之间接口的角色。

Read more »

一、安装前必读

在安装 Docker 之前,先说一下配置,我这里是Centos7 Linux 内核:官方建议 3.10 以上,3.8以上貌似也可。

注意:本文的命令使用的是 root 用户登录执行,不是 root 的话所有命令前面要加 sudo

1.查看当前的内核版本

uanme -r

1
2
3
4
5
[root@VM-4-8-centos ~]# uname -a
Linux VM-4-8-centos 3.10.0-1160.71.1.el7.x86_64 #1 SMP Tue Jun 28 15:37:28 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@VM-4-8-centos ~]# uname -r
3.10.0-1160.71.1.el7.x86_64
[root@VM-4-8-centos ~]#
Read more »

Nginx是什么

nginx是一个开源的,支持高性能,高并发的www服务和代理服务软件。它是一个俄罗斯人lgor sysoev开发的,作者将源代码开源出来供全球使用。

nginx比它大哥apache性能改进许多,nginx占用的系统资源更少,支持更高的并发连接,有更高的访问效率。

nginx不但是一个优秀的web服务软件,还可以作为反向代理,负载均衡,以及缓存服务使用。
安装更为简单,方便,灵活。

nginx可以说是非常nb了

面试回答nginx技巧

  • 支持高并发,能支持几万并发连接
  • 资源消耗少,在3万并发连接下开启10个nginx线程消耗的内存不到200M
  • 可以做http反向代理和负载均衡
  • 支持异步网络i/o事件模型epol
Read more »

今日概要:

  • 匿名函数
  • 生成器
  • 内置函数
  • 附加:推导式,属于数据类型的知识,内部的高级的用法会涉及到【生成器】和【函数】的知识。

1.匿名函数

传统的函数的定义包括了:函数名 + 函数体

匿名函数,则是基于 lamdba 表达式实现定义一个可以没有名字的函数,例如:

1
2
3
4
data_list = [ lambda x : x + 100, lambda x : x + 101, lambda x : x + 102]
print(data_list[0])

>>> <function <lambda> at 0x1047963b0>
1
2
3
4
5
6
f1 = lambda x : x + 100

res = f1(100)
print(res)

>>> 200
Read more »

pytest用例管理框架(单元测试框架)

主要作用

  • 发现测试用例:从多个py文件中按照一定的规则找到测试用例
  • 执行测试用例:按照一定的顺序执行测试用例,生成测试结果
    • pytest:默认从上到下,可以使用装饰器改变规则
    • unittest:默认按照ASCII顺序执行
  • 判断测试结果:断言
  • 生成测试报告:pytest-html,allure报告
Read more »

动态参数

  • *args
1
2
3
4
5
6
7
8
def func(*args):
print(args) # 元组类型 (22,)(22,33,99)()

# 只能按照位置传参
func(22)
func(22,33)
func(22,33,99)
func()
  • **kwargs
1
2
3
4
5
6
7
8
def func(**kwargs):
print(kwargs) # 字典类型 {"n1":"蒙珣"} {'n1':'蒙珣','age':18,'email':'mengxun@11.com'} {}

# 只能按关键字传参
func(n1="蒙珣")
func(n1="蒙珣",age=18)
func(n1="蒙珣",age=18,email="mengxun@11.com")
func()
  • *args,**kwargs
1
2
3
4
5
6
7
def func(*args,**kwargs):
print(args,kwargs) # (22,33,99) (22,){'n1':'蒙珣','age':18} (){}

func(22,33,99)
func(n1="蒙珣",age=18)
func(22,n1="蒙珣",age=18)
func()

提示:是否还记得字符串格式化时的format功能

1
2
3
4
5
v1 = "我叫{},今年{}".format("蒙珣",18)

v2 = "我叫{name},今年{age}".format(name="蒙珣",age=18)

# def format(*args,**kwargs):
Read more »