B站
-
和我一起玩Python:34. Python单元测试

我们强调在Python中进行单元测试的重要性,解释了它在更新项目功能时节省时间并防止意外副作用的作用。我们使用一个简单的脚本myfunctions.py和test_myfunctions.py中的测试案例来演示单元测试,使用了Python的unittest模块。我们还讨论了断言方法、测试环境的设置和拆卸方法,以及测试的非顺序执行。引入了测试覆盖率的概念,强调高覆盖率并不总是意味着高质量的测试。我们提到了coverage模块,用于跟踪测试执行的代码行。 Continue reading
-
和我一起玩Python:33. VS Code调试器(Python Debug)

使用VS Code中的调试功能对于编程非常重要,尤其是在处理复杂程序时。通过设置断点并使用调试命令,可以更有效地检查变量状态、理解执行顺序和观察调用堆栈。这种方法比简单的打印语句更有组织和高效,能帮助识别和修复错误。通过两个示例,介绍了如何在Python脚本和订单处理系统中使用调试器。总结时强调,调试不仅是解决问题的工具,更是深入理解程序运行方式的重要手段。 Continue reading
-
和我一起玩Python:32. 迭代器和生成器

迭代器和生成器对于处理大型数据集至关重要。迭代器允许以节省内存的方式顺序访问数据,而生成器则能按需生成数据,简化代码,提高性能。迭代器可用于列表、元组、集合、字典和字符串等可迭代对象,而生成器是一种特殊的迭代器,通过yield语句按需生成值。生成器表达式提供了一个内存友好的方式来处理大型数据集。生成器的优点包括简化代码、内存效率和自动保存状态。 Continue reading
-
和我一起玩Python:31. Python装饰器

今天咱们聚焦在Python的装饰器上,先从上节课的闭包开始聊。一开始,我用一个简单的装饰器示例来引入,就是那个outer()函数,它能修改并保持其他函数的功能。我们通过给say_hi函数加个@outer前缀来应用这个装饰器。接下来,我们讨论了怎么处理带参数的装饰器,用到了*args和**kwargs。还探讨了用类来定义装饰器的概念,这样做的好处包括了封装性和可维护性。最后,通过实例展示了装饰器在Python中的实际应用,比如用于日志记录和计算函数执行时间。这些例子展示了装饰器如何增强代码功能,用于性能监控和调试等任务。 Continue reading
-
和我一起玩Python:30. Python闭包

在 Python 闭包讲座中,我们解释了闭包是指一个函数内嵌套另一个函数,并包含一个自由变量。该自由变量在外部函数中定义,但在内部函数中使用。我们举例说明了一个名为 outer() 的函数内定义了另一个名为 inner() 的函数,以及一个变量 count。inner() 函数可以使用 nonlocal 关键字来改变 count 的值,这表明 count 是一个外部变量。每次调用 my_counter()(即 inner() 的一个实例)都会使 count 加1,展示了闭包能够记住外部作用域变量状态的能力,即使外部函数执行完毕也不受影响。这种特性使闭包与普通函数不同,也为学习装饰器等高级内容铺平了道路。 Continue reading
-
和我一起玩Python:29. 面向对象编程 (OOP后篇)

今天课程深入探讨了Python中的面向对象编程(OOP),包括类变量、类方法、静态方法和特殊方法。类变量是在类中所有方法外定义的变量,被所有实例共享,可通过类名访问。类方法和静态方法分别用@classmethod和@staticmethod装饰器标记,用于创建别的构造器和充当工具函数角色。特殊或双下方法用于操作符重载和内置的Python函数。课程还强调了封装、继承和多态等核心概念,并强调在真实项目中实施这些概念的重要性。 Continue reading
-
和我一起玩Python:28. 面向对象编程 (OOP前篇)

面向对象编程(OOP)不仅适用于Python,也适用于其他主流编程语言。它的重点是用对象来搭建程序,对象就是类的实例,可使软件更易扩展、复用和灵活。类是创建实例的蓝图,而构造器(init)用于初始化变量。继承则通过类的层次结构消除重复代码。课程强调“不要重复自己”原则,以及继承是实现DRY代码的强大技巧。学完课程后,你将能定义类、创建实例,并理解继承的用处。还将提供实践练习,加深理解。 Continue reading
-
和我一起玩Python:27. 变量作用域

在Python编程中,变量作用域指的是变量能够被访问和修改的范围。Python中有四种变量作用域:局部的、闭包的、全局的和内建的。在查找变量时,Python会按照LEGB的顺序进行搜索。我们还介绍了局部变量、全局变量以及使用闭包作用域和非本地关键字的相关内容。强调理解LEGB顺序对于高效的Python编程非常重要。总的来说,这篇内容全面介绍了Python中的变量作用域,并提供了实际例子和注意事项,帮助我们提高代码质量。 Continue reading
-
和我一起玩Python:26. 异常处理

今天咱们要聊聊Python中的异常处理。这节课咱们看了Python自带的那些异常怎么回事,以及如果处理它们来避免程序突然崩溃或者出错。课上还讲了怎么在自己的Python程序里自定义异常处理。举了个例子,展示了不同类型的异常,比如ValueError和ZeroDivisionError,还有怎么抛出自定义的异常。还分享了一些有用的链接,可以方便找到Python自带的错误代码。课程最后,咱们学到了,正确的异常处理不仅可以帮助发现和恢复错误,还能让调试和排障变得更简单,对Python开发者来说这是个很基础的技能。 Continue reading
-
和我一起玩Python:25. 文件处理

今天我们要讨论的话题有很多,从如何打开和关闭文件,读写数据,到一些高级操作,比如处理大文件和复制内容。首先说说打开和关闭文件:这个课程重点讲了如何有效管理文件,防止资源泄露或数据不完整。Python自带的open和close函数就是用来做这个的。需要强调一下,关闭文件特别重要,尤其是在写完之后,这样才能保证数据都保存了,同时也能释放系统资源。然后是上下文管理器:Python里的’with’语句,也就是上下文管理器,用来更好地管理文件。使用它,文件操作完了之后自动帮你关闭,效率更高。读大文件怎么办呢?有几招能分部读取文件,比如f.readlines()、f.readline()和f.read(size),这样对内存更友好。再来看看写和追加:教程讲了如何使用’w’和’a’模式分别写入和追加文件。需要注意,使用’w’模式会覆盖掉原有内容。还有一个seek函数:f.seek(0)这个招数能让读写指针重置,让你能在文件内灵活跳转。复制文件怎么做?教程给出了两种方法,一种是逐行读取然后写入,另一种是控制读取的大小。处理二进制文件:教程还讲了如何读写二进制文件,比如图片,只要在模式中加上’b’,比如rb或wb。 Continue reading
关于我
大家好,我是赛博红兔,是一个具有超过6年在Yaskawa Motoman机器人实验室和工业过程控制研究所的机器人及控制研究经验的创新且敬业的专业人士。主要关注机器学习、先进动态系统控制算法及其实现,精通C++、Python和MATLAB编程。
咨询互动邮箱:cyberhongtu@outlook.com
Bilibili视频请搜索:赛博红兔CyberHongTu
日志分类
- 生活琐事 (1)
- 生产力和技术 (1)
- 科技新闻评论 (1)
- Python教程《Python5分钟》 (14)
- Python教程《和我一起玩3A游戏》 (7)
- Python教程《和我一起玩Python》 (52)
- 播客《和大伙聊聊天》 (11)
- 书籍读后感 (3)






