在Python学习笔记9:类中我们介绍了一些基础的类定义和使用方式,我们这里用OOP的原则对其进行重新审视,并且补充没有说到的部分。 封装 关于封装,在前文中我们介绍了简单的封装方式,即如何用前缀_或__来实现类似的访问修饰符的作用。 但有一点我们没有说明,即如何实现类方法。 我们知道,类方法和对象方法最大的不同是不依赖于对象的属性,当然也不存在对象指针或引用。 class sampleCls: @classmethod def classMethod(cls): print(cls) …
在Python学习笔记9:类中我们介绍了一些基础的类定义和使用方式,我们这里用OOP的原则对其进行重新审视,并且补充没有说到的部分。 封装 关于封装,在前文中我们介绍了简单的封装方式,即如何用前缀_或__来实现类似的访问修饰符的作用。 但有一点我们没有说明,即如何实现类方法。 我们知道,类方法和对象方法最大的不同是不依赖于对象的属性,当然也不存在对象指针或引用。 class sampleCls: @classmethod def classMethod(cls): print(cls) …
本来以为Python的基础内容已经告一段落,但在网上一番查找后找到了一些有趣的内容。 既然主要是关于列表的,那就单独再写一篇吧。 这里提供两个不错的网络资源: 《Python Cookbook》电子版,和出版社出版的译者不同,译者完全是在为爱发电,并且免费公开。 Python 3.9.2 文档,Python官方文档,让我很诧异的是居然有中文版,翻译的还不错。 解压 通常我们只会在解压一些压缩文件的时候这么称呼这种操作,但有趣的是Python的基础容器也支持一种叫解压的操作,而且还真的挺形象。 people = ["…
Python学习笔记16:生成器 在前文Python学习笔记15:推导式的结尾我们已经引出了Python中的另一项特性:生成器。 要说明的是生成器和推导式在写法上是极为相似的,除了生成器是用()来包裹以外。但实际上,他们有很大不同。 基本概念 我们现在看一个简单的例子: import requests urls = ("https://www.liaoxuefeng.com/wiki/1016959663602400/1183249464292448", "https://www.runoob.com…
这一篇笔记要介绍的也是Python中独有的特性:推导式。 基本语法 在介绍推导式前,我们先来看一段编程中非常常见的代码: string = "this is a test String" strList = [] for char in string: strList.append(char) print(strList) # ['t', 'h', 'i', 's', ' ', 'i', 's', ' ', 'a', ' ', 't', 'e', 's', 't', ' ', 'S', 't', 'r', '…
Python支持多线程,并且标准库和第三方库有很多组件都提供对多线程的支持。 这里仅介绍最简单的标准库实现。 Threading Python3提供一个标准库threading对多线程提供支持。 我们先看一个简单的例子: import time def doSomething(): time.sleep(5) doSomething() print("end") 这里我们假设有一个函数doSomething需要执行一个较长时间的任务,我们用sleep挂起线程来进行模拟。 运行这个程序后需要等5秒钟才能看到…
在编程语言的学习中,异常处理往往是不起眼,但又没法舍弃的部分。 事实上,当时的C++老师说过:异常的诞生是为了增强程序的健壮性,能让程序在出错的时候自动恢复。但很遗憾的是,这种局面从未实现。 所以,不要奢望你学完异常就有一种强大的工具,能大幅度提升代码的健壮性。我更倾向于这是一个讲代码中的错误能集中起来展示和处理,并和正常的业务逻辑区分开的有用的工具,仅此而已。 异常非但没能完成让程序忽视错误正常运行的初衷,反而在某些情况下可能会屏蔽掉一些严重问题,给调试带来麻烦,所以我们使用的时候要谨慎,你需要明白你使用异常的必…
上一篇笔记Python学习笔记11:函数修饰符介绍了如何构建自己的函数修饰符,这篇笔记通过使用函数修饰符改进web应用来演示如何在实际使用中运用。 用函数修饰符改进web应用 添加注册和登录功能 我们先给web应用添加一个很常见的功能:注册和登录。 先新建一个用户表: CREATE TABLE `myweb`.`user`( `id` INT NOT NULL AUTO_INCREMENT COMMENT '用户id', `name` VARCHAR(20) NOT NULL COMMENT '用户名', `pas…
Python有很多有趣的特性,其中函数修饰符就是一个。 我们在之前的那个web应用示例中用过如下写法: @web.route('/log') @符号后边的,就是一个函数修饰符,它可以在不改变原有函数的情况下改变函数的行为(通常来说是增强函数的行为)。 我们下面就来说说怎样实现一个函数修饰符。 在这之前,我们要先介绍几个必须要先掌握的内容。 接收和返回函数 如我们在Python学习笔记0:变量中讨论的,在Python中,所有的一切都是对象,而函数也不例外。那理所应当的,函数也可以作为对象被另一个函数所接收和返回。 我…
我们从一门语言转到另一门新语言,最先注意到的无疑是这门语言有没有什么类似独门绝技一样的东西,而今天要说的就是这么一种Python独有的特性:上下文协议。 基本概念 之前我们介绍文件的时候有提到过使用with/as来实现自动打开与关闭文件,这样做可以避免开发者忘记关闭文件,无疑相当方便。 我们现在把眼光放高一点,从具体的开启、处理、关闭文件这个简单场景上升到这样一个模式: 在执行前进行一些准备活动。 执行一些行为。 在执行后进行一些收尾活动。 这个模式是不是具有一定的通用性? 比如数据库连接,在执行SQL前我们要进行…
因为《Head Frist Python》一书的内容设置,所以我这个系列笔记也在这时候才介绍Python中的类。 本文内容和示例都基于笔者之前对Java和PHP运用的理解综合而成,和《Head First Python》一书关系不大,对原书内容感兴趣的强烈建议购买一本。 基本概念 在Python中使用类很简单,这里举一个最简单的例子: class Test(): def __init__(self, a: int = 0): self.a = a def print(self) -&g…
魔芋红茶
加一点PHP,加一点Go,加一点Python......
COPYRIGHT © 2021 icexmoon.cn. ALL RIGHTS RESERVED. 本网站由提供CDN加速/云存储服务
Theme Kratos Made By Seaton Jiang