- 博客(3026)
- 收藏
- 关注
原创 【20年企业内训和IT培训架构师倾情分享和指导】技术之路不止代码:一位云计算导师能为您提供的4大“超值”服务
没错,作为一名深耕云计算领域的讲师,我的日常确实是与AWS、Azure、Kubernetes、Docker这些酷炫的技术为伴,带领学员们从零开始,一步步构建起通往云端的阶梯。当一批批学员成功就业,开启他们的职业生涯后,我发现自己能带来的价值,远不止于课堂上的知识点。技术是硬实力,但如何展示技术、推销技术、规划技术生涯,同样至关重要。陷入职业瓶颈的工程师、对未来感到迷茫的初学者、寻求更高职位的技术人。今天,我想和大家聊聊,除了云计算技能培训之外,我还能为您提供的。,希望能为您的职业发展带来一些新的思路。
2025-08-28 07:29:36
492
原创 Python3.6操作MySQL8-002篇
如果服务器完全断网,可通过离线 whl 包安装,对应你报错中的。),CentOS 7 服务器访问境外源普遍速度极慢,最终触发。你当前使用的是国外官方 Python 包仓库(下载失败,和包本身无关。
2026-07-08 06:36:12
135
原创 Python3.6操作MySQL8-001篇
适配环境:CentOS 7.9 + Python 3.x + MySQL 8.0.12,采用业界通用的。核心流程:建立连接 → 创建游标 → 执行SQL → 处理结果 → 关闭游标 → 关闭连接。需要我补充一个封装好的MySQL工具类,包含通用增删改查方法,可直接在运维脚本中复用吗?会让查询结果以「字段名: 值」的字典形式返回,比默认元组更易读,运维开发推荐使用。认证插件,低版本 PyMySQL 可能兼容失败,建议先将用户认证方式改为兼容的。占位符 + 参数元组的方式,PyMySQL 会自动做转义处理。
2026-07-08 06:35:58
10
原创 Python面相对象基础
如果一只鸟走起来像鸭子、叫起来像鸭子,那它就是鸭子。不关心对象是什么类型,只关心它能做什么(有什么方法)。阶段核心概念关键代码入门类 / 对象 / 属性 / 方法入门构造方法与str__init____str__进阶继承与方法重写进阶模块化高级鸭子模型只调用方法,不判断类型💡运维口诀入门看self—— 自己指自己进阶看super—— 找爹帮忙高级看方法—— 不管你是谁,能干活就是好鸟 🦆。
2026-07-08 06:35:41
16
原创 Python3中的单继承和多继承001篇
单继承指一个子类有且仅有一个直接父类,继承关系是单一线性的链条,子类只能从一个父类复用属性和方法。你之前代码里WebServer只有Server一个父类,所有能力都沿着「Server → WebServer」这一条线传递。一个子类可以同时继承多个父类,一次性获得所有父类的属性和方法。class 子类名(父类1, 父类2, 父类3...):# 子类逻辑优先单继承:核心业务的层级关系(is-a)优先用单继承,保证结构清晰、可维护。多继承只用于 Mixin。
2026-07-08 06:35:20
86
原创 Python3文件读写003篇
文件分类文本文件:由字符构成,可通过文本编辑器直接查看编辑,如.txt.py.html文件。二进制文件:有特定格式,无法用文本编辑器正常解析,如图片、音频、视频、压缩包。本质:文本文件底层也是二进制存储,二者的核心差异在于是否遵循字符编码规范。标准操作流程:打开文件 → 读写操作 → 关闭文件,必须手动或自动关闭文件以释放系统资源。
2026-07-08 06:35:03
7
原创 Python3文件读写002篇
使用自定义异常if b == 0:raise MyCustomError("除数不能为零!")try:class MyCustomError(Exception) : def __init__(self , message) : self . message = message super() . __init__(self . message) # 使用自定义异常 def divide(a , b) : if b == 0 : raise MyCustomError("除数不能为零!
2026-07-08 06:34:41
5
原创 Python3文件读写001篇
掌握按字符数读取,区分文本模式下的「字符」与「字节」特性:不清空原文件,可在任意位置写入,文件不存在则报错。:跳过前2个汉字(6字节),从第3个汉字开始读取。:只会覆盖开头对应长度的内容,不会清空整个文件。:理解文件指针概念,获取当前指针的字节偏移量。:掌握批量读取,返回列表,每个元素对应一行。:掌握大文件推荐读法,内存占用低,逐行处理。:原有内容保留,在文件最后一行新增内容。模式,掌握追加写入,不清空原有内容。特性:先清空文件,再写入,支持读取。:掌握截断文件,保留指定长度的内容。
2026-07-08 06:34:26
5
原创 Python3面向对象【20260706】009篇-CMDB版本002
新增功能说明1. 用户登录与权限体系采用类封装账号与密码哈希(SHA256加密存储,不明文保存)类独立负责用户增删改查与持久化,符合单一职责原则默认管理员账号:,首次运行自动创建支持普通用户与管理员角色区分,仅管理员可进入用户管理登录3次失败自动退出2. 按部门分组管理服务器基类新增属性,物理机/云主机自动继承支持按部门筛选查看、按部门统计资产数量添加服务器时可指定部门,默认“未分配”搜索功能同时支持IP、主机名、部门关键字匹配兼容旧版本数据,无部门字段自动补全为“未分配”
2026-07-07 08:04:23
138
原创 Python3面向对象【20260706】008篇-CMDB版本001
下面是一套完整可运行的 CMDB 服务器资产管理系统,全程采用面向对象设计,涵盖。三大特性,支持服务器增删改查、持久化存储、分类管理等企业级常用功能。
2026-07-07 08:04:06
406
原创 Python 面向对象专项练习题(10 道)
success"点击查看答案与解析输出结果解析&易错坑点__init__是构造方法,实例化对象时自动执行,用于给对象绑定专属属性。self代表当前实例对象,所有实例方法的第一个参数必须是self,通过self.属性名访问实例自身的属性。易错点:忘记写self参数,或者访问属性时不加self,导致名称错误。
2026-07-07 08:03:45
15
原创 通过例子学习Python面相对象001-实例1:最基础的“服务器类“(理解“类 vs 对象“)
类 = 图纸/模板,对象 = 按图纸造出来的真实个体。我们先定义了Server类:它是一张通用的「服务器出厂图纸」,统一规定了所有服务器都必须有 IP、主机名,都具备“查看自身信息”的功能。再通过Server(参数)创建出web1db1两个对象:它们是两台真实存在的服务器,各自有独立的 IP 和主机名,数据互不干扰。类比工厂生产:模具(类)只需要做1个,但可以批量生产出成千上万个零件(对象);所有零件都符合模具的规格,又有自己的独立编号。解决批量管理的重复问题。
2026-07-07 08:03:26
8
原创 Python3面向对象【20260706】007篇
特性在本项目中的体现封装Validator内部细节隐藏在类内继承Server继承Asset复用基类属性多态接受任意可迭代的服务器集合魔术方法__str__美化打印、__eq__比较对象、__repr__调试显示类属性STATUSES共享常量静态方法Validator中独立校验函数依赖注入接收storage而非自己创建单一职责每个类只负责一个领域(模型/存储/校验/管理)这个系统已经具备了一个 CMDB 核心功能,如果要扩展(比如加入用户认证、SSH 连接、Excel 导出等),只需新增相应的类即可,符合。
2026-07-07 08:02:53
13
原创 Python3 面向对象术语大全-002篇
项目内容What不能直接实例化、必须被继承才能用的"半成品"类Why强制子类实现特定方法,规范代码When父类方法没有具体实现、只定义接口时Howabc模块 +🔵大白话:老板说"必须会开车",但具体怎么开由员工自己实现。🟢专业视角:实现"抽象"和"模板方法模式",约束子类行为。class Server(ABC): # 抽象类def start(self): # 子类必须实现passdef start(self): # 必须重写print("启动 Nginx")
2026-07-07 08:02:15
91
原创 Python3面向对象【20260706】006篇
class Dog:# 类属性(所有实例共享)# 构造方法(初始化实例属性)self.name = name # 实例属性# 实例方法return f"
2026-07-06 07:00:33
21
原创 Python3面向对象【20260706】005篇
Grandpa(name)→ Father继承Grandpa → Son继承Father;Son实例化调用父类全部属性。继承Person,新增subject学科;用super继承父类name,写show方法输出姓名和授课科目。类,静态方法:加法add(a,b)、减法sub(a,b),不创建对象直接调用。创建两个手机对象,分别打印类属性和实例属性。账户类,初始化姓名、余额;内部调用私有方法,校验通过打印登录成功。,实例化2个不同名字的狗并调用方法。类,属性:姓名、年龄;类,属性书名、价格;
2026-07-06 06:37:37
156
原创 Python3面向对象【20260706】004篇
定义类# 构造方法:创建对象时自动调用# 实例属性# 实例方法print(f"大家好,我是# 定义类 class Person : # 构造方法:创建对象时自动调用 def __init__(self , name , age) : # 实例属性 self . name = nameself . age = age # 实例方法 def say_hello(self) : print(f"大家好,我是 {self . name } ,今年 {
2026-07-06 06:36:14
94
原创 Python3面向对象【20260706】003篇
—会造出"影子描述符",Base.a 和 Child.a 两个 descriptor 抢 offset,行为诡异。——不过 Python 只在运行时检查,不像 Rust 编译期就卡)。,所以略快,但瓶颈一般不在这一层,别指望换 slots 程序飞起来。,抓完变量之后再筛,避免把复杂条件塞进 pattern 本身。(dataclass + match 做 ADT),一个偏。,slots 类不行,除非你自己把。且漏了分支,运行时没匹配到会抛。,塞几个键值就奔 200+。三个属性场景,单实例。
2026-07-06 06:35:40
24
原创 Python3面向对象【20260706】002篇
外部仍可读写列表内容,真·不可变得靠"frozen + 内部全用不可变类型"。既有 dataclass 的。默认 Python 实例用。"三条进阶线,挨个拆。+ 显式继承更主流,好,这三个正好覆盖"(几十~几百字节)。
2026-07-06 06:34:10
223
原创 Python3面向对象【20260706】001篇
def __init__(self, name, age): # 构造方法,self 指代实例本身self.name = name # 实例属性def greet(self): # 实例方法class Person : def __init__(self , name , age) : # 构造方法,self 指代实例本身 self . name = name # 实例属性 self . age = age def greet(self) : # 实例方法 return f"Hi, I'm {
2026-07-06 06:33:10
13
原创 Python3-函数得作用域-004篇-内置标识符遮蔽(Shadowing Built-ins)
这是作用域遮蔽中最隐蔽、新手最容易踩的坑:用Python内置函数/内置类型的名称作为变量名,导致原生内置功能被覆盖,调用时触发匪夷所思的类型错误。都被判定为局部变量,第一行的引用就会报“赋值前引用”错误。调用操作,自然抛出“整数对象不可被调用”的类型错误。最终程序拿到的是整数。
2026-07-05 15:27:55
23
原创 Python3-函数得作用域-003篇-专项练习题
请写出程序的输出结果(或报错类型与原因),难度从入门逐步进阶,覆盖全局/局部基础规则、语法、LEGB查找逻辑、四大经典踩坑点,适合学完作用域后自检巩固。
2026-07-05 15:10:17
128
原创 Python3-函数得作用域-002篇
变量作用域是Python命名空间体系的核心规则,决定了变量的可见范围、生命周期与查找优先级,其学习路径可分为入门认知、进阶原理、高阶工程三个层级,逐层递进,从“会用”到“懂原理”再到“用得规范”。
2026-07-05 15:08:19
97
原创 Python3-函数得作用域-001篇
类型定义位置可见范围生命周期典型用途全局变量函数外整个.py文件程序运行期间配置项、常量、开关局部变量函数内仅在函数内部函数调用开始到结束临时计算、中间结果✅黄金法则(入门必背):函数内部可以看外面的变量,但不能随便改;函数外面的世界看不到里面的变量。入门:变量分内外,函数内改外要global。进阶:查找按顺序(LEGB),闭包改外层要nonlocal。高手:少写全局,多用参数和返回值;理解闭包是理解装饰器的前提。
2026-07-05 15:07:07
13
原创 Python函数基础入门
函数定义是 Python 中封装代码的核心手段,通过def关键字将一段可重复执行的逻辑打包,赋予其一个名字,后续只需通过名字即可调用这段逻辑,是提升代码复用性、降低维护成本的基础语法。先定义,后调用函数的定义代码必须写在调用代码的前面,否则会报NameError错误。# 错误示例:先调用,后定义print_report_header() # 报错:名字未定义print("表头")缩进必须统一函数体内的所有代码必须保持相同的缩进(推荐 4 个空格),缩进错误是新手最常见的报错原因。
2026-07-04 07:08:39
129
原创 Python练习题002篇
编写Python代码:输入一个三位数的Linux文件权限数字(如755、644),先判断是否为三位数且每位数字在0-7之间;编写Python代码:输入Linux系统的1分钟平均负载值和CPU核心数,计算。编写Python代码:输入用户名和用户所属组名,判断用户是否有权限访问。编写Python代码:输入一个进程的PID数值和进程状态码(编写Python代码:输入网络端口号和端口状态(编写Python代码:输入一条系统日志的级别(编写Python代码:同时输入CPU使用率(【正常】磁盘空间充足。
2026-07-04 07:08:04
112
原创 自驾游大西北
的完整版10天自驾行程,完整保留你列出的全部人文遗址与自然秘境,同时优化行车动线、卡准最佳观赏光线,兼顾历史深度与自驾舒适度。需要我帮你把某一天再拆解得更细,或者针对你的出行日期调整日出日落时间、门票预约技巧吗?:约320公里(去金昌则约440公里):约280公里,驾驶约4.5小时。:约380公里,驾驶约5.5小时。:约300公里,驾驶约4.5小时。:约260公里,驾驶约4小时。:约380公里,驾驶约6小时。:约120公里,驾驶约2小时。:约200公里,驾驶约3小时。:约260公里,驾驶约4小时。
2026-07-04 07:07:42
83
原创 Python流程控制练习题001篇
流程控制与三元条件表达式,每个知识点都配带逐行注解的基础示例,覆盖新手 90% 的使用场景和高频踩坑点。三元表达式只适合简单赋值,不要在里面写函数调用、修改变量等有副作用的操作,会大幅降低代码可读性。除了上面的假值,其余几乎都为 True,比如非0数字、非空字符串、非空列表等。,但功能更强,支持值匹配、结构匹配、守卫条件,适合复杂的分支判断。条件成立执行 if 块,不成立就执行 else 块,二选一。只有一个判断条件,满足就执行代码,不满足就什么都不做。的双分支逻辑,但只能写表达式,不能写复杂代码块。
2026-07-04 07:06:58
27
原创 Python练习题2
覆盖服务器资源计算、告警判断、日志分析、IP/主机名校验、单位换算等运维高频场景,结合你已学的变量、输入输出、全类型运算符、if分支、字符串基础操作,难度循序渐进,不涉及循环、函数等未学知识点,可直接上手练习。输入总内存(GB)、已用内存(GB)、Swap总大小(GB)、Swap已用(GB),计算内存使用率和Swap使用率,输出内存健康状态,同时输出剩余可用内存。服务器CPU为8核,输入1分钟平均负载值,判断负载状态:负载超过核心数的80%时输出「负载过高,建议排查」,否则输出「负载正常」。
2026-07-04 07:06:21
18
原创 Python3面向对象002
Python 使用class关键字定义类,类名默认采用大驼峰命名法。__init__:构造方法,在创建实例时自动执行,用于初始化实例属性。self:代表当前实例对象本身,是所有实例方法的第一个参数,调用时由Python自动传入,无需手动传递。# 定义类# 类属性:所有实例共享,定义在方法外部species = "智人"# 构造方法:初始化实例属性# 实例属性:每个实例独有,通过 self 绑定# 实例方法:操作实例属性print(f"你好,我是。
2026-07-04 07:06:02
33
原创 Python3面向对象001
类(Class):模板 / 图纸对象(Object):用模板造出来的东西passp = Person() # p 是一个对象。
2026-07-04 07:05:44
24
原创 Python函数006
参数是函数与外部世界交互的入口,决定了函数的通用性与灵活性。从无参到不定长参数,函数的输入能力逐步增强,设计复杂度也同步提升。优秀的工程师不会盲目追求“最灵活”,而是会为业务场景选择「刚好够用」的参数形式——灵活性永远与可读性成反比。当Python解释器执行到def在内存中创建一个function类型的对象,包含函数的字节码、名称、文档字符串等元数据;将函数名作为标识符,绑定到当前作用域的命名空间中,指向这个函数对象;函数体代码不会立即执行,只有调用时才会入栈运行。对于无参函数,它的函数对象。
2026-07-03 06:26:18
135
原创 Python函数005
定义:函数是一段具有名称、可重复使用、完成特定任务的代码块。函数 = 业务逻辑的抽象 + 标准化的接口当你把“检查端口”这个行为封装进函数时,你不再是在写代码,而是在定义**“检查端口”这个业务能力**。
2026-07-03 06:26:04
102
原创 Python函数004
你只要跟着敲,不懂就问。每次巡检脚本运行,都要打印一样的表头。调用📌 你现在拥有了一个“可复用的打印工具”检查某台服务器的某个端口是不是开着。✅ 参数让函数“活”了起来运维最核心逻辑之一:超过阈值就告警✅ 返回值 = 函数给你的“结论”❌ 新手:✅ 老手:以后阈值从 80 改成 75 ——👉 只改一行写一个函数,打印:写一个函数,传入服务器 IP,打印:写一个函数,传入 CPU 使用率,返回 或 (阈值 90)写一个函数,传入 IP 和端口,默认端口 22,打印检测信息写一个函数,
2026-07-03 06:25:53
25
原创 Python函数003
告警消息经常需要新增字段(比如挂载点、服务名、阈值),用**kwargs不用修改函数定义就能扩展。"""构建告警消息,支持任意附加字段"""msg = f"主机def create_alert_msg(host , ** kwargs) : """构建告警消息,支持任意附加字段""" msg = f"主机 {host } 触发告警" # 遍历所有传入的自定义字段 for key , value in kwargs . items() : msg += f" | {key } : {
2026-07-03 06:25:41
15
原创 Python函数003
你只要跟着敲,不懂就问。每次巡检脚本运行,都要打印一样的表头。调用📌 你现在拥有了一个“可复用的打印工具”检查某台服务器的某个端口是不是开着。✅ 参数让函数“活”了起来运维最核心逻辑之一:超过阈值就告警✅ 返回值 = 函数给你的“结论”❌ 新手:✅ 老手:以后阈值从 80 改成 75 ——👉 只改一行写一个函数,打印:写一个函数,传入服务器 IP,打印:写一个函数,传入 CPU 使用率,返回 或 (阈值 90)写一个函数,传入 IP 和端口,默认端口 22,打印检测信息写一个函数,
2026-07-03 06:25:29
22
原创 Python函数002
这是完全面向零基础的入门讲解,不讲复杂术语,每一步都有可直接运行的小例子,跟着敲一遍就能理解函数的核心逻辑。需要的数据尽量通过参数传进去,结果通过 return 拿出来,这是更规范的写法。有些参数大部分时候都是固定值,只有少数情况需要修改,就可以给它设置「默认值」。不传就用默认值,传了就用你指定的值。如果参数的数量不固定,比如一次要检测10个IP、20个IP,就用不定长参数。如果想让同一个函数处理不同的数据,就要用「参数」。注意:传参的数量要和定义的参数数量一致,多传、少传都会报错。
2026-07-03 06:25:12
28
原创 Python练习题002
Linux文件权限用三位数字表示(如755、644),第一位代表文件所有者权限。输入一个三位整数,先判断是否为三位数,且每一位数字都在0~7之间;核心知识点,场景贴合Linux运维真实工作场景。计算单核心平均负载 = 总负载 ÷ CPU核心数。内存使用率 > 90 时,输出。内存使用率 > 80 时,输出。当 单核心负载 > 1.2。当 单核心负载 > 0.8。服务无访问,疑似异常。服务压力低,运行正常。备份失败,数据不可用。【正常】内存资源充足。允许执行,无权限限制。允许执行,需验证密码。
2026-07-03 06:24:41
18
Linux 指令完全指南第1部分
2025-09-02
计算机组装基础【计算机硬件组装与网络基础】计算机组装全流程详解:硬件选购、组装步骤、软件安装及故障排查
2025-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1