Python 周报,提供有价值的 Python 及行业相关信息。

如果你发现了有价值的信息、文章和工具等,可以到 Issues 里提给我,记得写上推荐的理由。也欢迎提出意见和建议。

:newspaper_roll: 新闻

Python 版本3.8.0至3.8.3中的零日漏洞会导致哈希冲突并导致 DoS

安全研究人员在 Python 版本3.8.0、3.8.1、3.8.2和3.8.3中发现了零日漏洞,这会导致 IPv4Interface 和 IPv6Interface 中的哈希冲突,并可能导致拒绝服务(DoS)攻击。该漏洞已分配给标识符 CVE-2020-14422,并且 NVD 对该漏洞的中等评分为5/10。

:pencil: 文章和教程

软件工程师的指南

软件工程师指南是一本完整的开源计算机科学课程,旨在涵盖与当今行业最相关的软件工程的基础知识和实践主题。可以将它视为大学或训练营教育的替代或补充。它的目的是作为初学者的指南,以供他们计划进入软件工程的职业过渡,希望扩展其实践知识的计算机科学学生以及有经验的工程师好奇地寻求其他主题的参考。

本课程中的每个主题仅包含一个参考,供读者在短时间内熟悉和理解。在其他参考文献中,选择了内容结构清晰的教程和动手实例。有人会说它在计算机科学学习中采用了广度优先的搜索方法。

该课程分为四个主要部分:基础知识,高级知识,轨迹(tracks)和主题。基础知识涵盖计算机科学的核心部分,通常是大学的低年级课程所必需的。高级课程对计算机科学的各个主题进行了更深入的介绍,通常是高阶大学选修课中讨论的主题。轨迹概述了最常见的软件工程角色,并提供了相关主题以供入门理解。主题提供了在公司研究实验室和启动计划中研究的专业领域的内容。

如果您只是开始,建议按顺序阅读基础知识,然后选择一些高级主题随意阅读。对于好奇的人,在选择您最感兴趣的职业选择时,请以轨迹和主题为参考。

Python 3中的面向对象编程(OOP)

面向对象编程(OOP)是一种通过将相关属性和行为绑定到单个对象中来构造程序的方法。在本教程中,你将学习 Python 中的面向对象编程的基础知识。从概念上讲,对象就像系统的组件。将程序想像成工厂的装配线。在装配线的每个步骤中,系统组件都会处理一些材料,最终将原材料转换为成品。

一个对象包含数据,例如流水线上每个步骤的原始材料或预处理材料,以及行为,例如每个流水线组件执行的动作。

在本教程中,你将学习如何:

  • 创建一个类,就像创建对象的蓝图;
  • 使用类创建新对象;
  • 具有类继承的模型系统。

Python导入:高级技术和技巧

在 Python 中,你可以使用 import 关键字来使一个模块中的代码在另一模块中可用。Python 的导入对于有效地构造代码很重要。正确使用导入将使你的工作效率更高,使你可以在保持项目可维护性的同时重用代码。

本教程将全面概述 Python 的 import 语句及其工作方式。导入系统功能强大,你将学习如何利用此功能。虽然你将学到 Python 导入系统背后的许多概念,但本教程主要是示例驱动的。你将通过几个示例代码来学习。在本教程中,你将学习如何:

  • 使用模块,程序包和名称空间程序包
  • 处理包中的资源和数据文件
  • 在运行时动态导入模块
  • 自定义 Python 的导入系统

:office: 项目,软件包和代码

M60机械键盘

开源,USB 和 BLE 5.0,模块化,可热插拔,60%由Python驱动的键盘。

Pyodide

Pyodide 通过 WebAssembly 将 Python 3.8 运行时带到浏览器,包括 NumPy,Pandas,Matplotlib,SciPy 的一部分作为科学栈和 NetworkX。软件包目录列出了超过35个当前可用的软件包。

Pyodide 提供了 Javascript 和 Python 之间对象的透明转换。当在浏览器中使用时,Python 可以完全访问 Web API。

Pyodide 与 iodide 项目紧密相关,iodide 项目是为网络进行科学计算和通讯的工具,它超越了在笔记本环境中运行的范围。为了最大程度地提高现代 Web 的灵活性,可以在要在 Web 浏览器中运行 Python 的任何情况下单独使用 Pyodide。

:coffee: 关注我们

RSS 订阅:PythonWeekly RSS