自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 5 年 Python ,总结的 10 条 Python 使用技巧

今天给大家分享 10 个我平时整理非常实用的 Python 开发小技巧,内容目录如下:值得一提的是,这 10 个技巧全部收录在我自己写的 《Python黑魔法指南》里。1. 如何在运行状态查看源代码?查看函数的源代码,我们通常会使用 IDE 来完成。比如在 PyCharm 中,你可以 Ctrl + 鼠标点击 进入函数的源代码。那如果没有 IDE 呢?当我们想使用一个函数时,如何知道这个函数需要接收哪些参数呢?当我们在使用函数时出现问题的时候,如何通过阅读源代码来排查问题所在呢?这时候,我

2020-10-28 19:52:42 4039 6

原创 Python炫技操作:花式导包的八种方法

1. 直接 import人尽皆知的方法,直接导入即可>>> import os>>> os.getcwd()'/home/wangbm'与此类似的还有,不再细讲import ...import ... as ...from ... import ...from ... import ... as ...一般情况下,使用 import 语句导入模块已经够用的。但是在一些特殊场景中,可能还需要其他的导入方式。下面我会一一地给你介绍。2

2020-10-19 12:39:40 3003 3

原创 白学这么多年 Python ?连泛型函数都不会写?

泛型,如果你尝过java,应该对他不陌生吧。但你可能不知道在 Python 中(3.4+ ),也可以实现 简单的泛型函数。在Python中只能实现基于单个(第一个)参数的数据类型来选择具体的实现方式,官方名称 是 single-dispatch。你或许听不懂,说人话,就是可以实现第一个参数的数据类型不同,其调用的函数也就不同。singledispatch 是 PEP443 中引入的,如果你对此有兴趣,PEP443 应该是最好的学习文档:https://www.python.org/dev/peps/pe

2020-10-11 18:11:04 6745 8

原创 超详细讲解如何使用 pdb 在服务器上调试代码

Pycharm 的图形化界面虽然好用,但是在某些场景中,是无法使用的。而 Python 本身已经给我们提供了一个调试神器 -- pdb,可能你还不知道它,为了讲解这个神器,我写了这篇文章来帮助你轻松的理解它。1. 准备文件在调试之前先将这两个文件准备好(做为演示用),并放在同级目录中。utils.pydef sum(mylist): result = 0 for item in mylist: result += item return resultpdb_

2020-10-30 11:15:39 1276

原创 超详细图文教你如何使用 PyCharm 进行远程调试

推荐阅读:http://pycharm.iswbm.com这一篇文章是以前的文章,有的朋友已经看过,但是没有关系,因为这次我准备介绍这几大调试工具都是如何调试,又该如何选择。一般情况下,我们开发调试都是在个人PC上完成,遇到问题,开一下 Pycharm 的调试器,很快就能找到问题所在。可有些时候,项目代码的运行会对运行环境有依赖,必须在部署了相关依赖组件的服务器上才可以运行,这就直接导致了我们不能在本地进行调试。对于这种特殊的场景,就我所知,有如下两种解决方案:pdbRemote Debug

2020-10-30 08:49:10 5381

原创 最全的 pip 使用指南,50 % 你可能都没用过~

所有的 Python 开发者都清楚,Python 之所以如此受欢迎,能够在众多高级语言中,脱颖而出,除了语法简单,上手容易之外,更多还要归功于 Python 生态的完备,有数以万计的 Python 爱好者愿意以 Python 为基础封装出各种有利于开发的第三方工具包。这才使用我们能够以最快的速度开发出一个满足基本需要的项目,而不是每次都重复造轮子。Python 从1991年诞生到现在,已经过去28个年头了,这其间产生了数以万计的第三方包,且每个包都会不断更新,会有越来越多的版本。当你在一个复杂的项目环

2020-10-29 21:07:28 1415

原创 如何使用 virtualenv 创建 Python 虚拟环境?

1. 什么是虚拟环境?虚拟环境的意义,就如同 虚拟机 一样,它可以实现不同环境中Python依赖包相互独立,互不干扰。举个例子吧。假设我们的电脑里有两个项目,他们都用到同一个第三方包,本来一切都顺利。但是由于某种原因,项目B由于某些原因要使用这个第三方包的一些新特性(新版本才有),而如果就这样贸然升级了,对项目A的影响我们无法评估,这个时候我们就特别需要有一种解决方案可以让项目A和B,处于两个不同的Python环境中。互不影响。为了方便大家对虚拟环境有个认识,我列举了下其优点:使不同应用开发环境

2020-10-29 12:50:33 1695 1

原创 学 Python 一定要学会的几个高阶函数

1. lambda 表达式匿名函数(英语:anonymous function)是指一类无需定义标识符(函数名)的函数。通俗来说呢,就是它可以让我们的函数,可以不需要函数名。正常情况下,我们定义一个函数,使用的是 def 关键字,而当你学会使用匿名函数后,替代 def 的是 lambda。这边使用def 和 lambda 分别举个例子,你很快就能理解。def mySum(x, y): return x+ymySum(2, 3)# 5(lambda x, y: x+y)(2, 4)#

2020-10-29 09:00:01 285

原创 深入探讨 Python 的 import 机制:实现远程导入模块

所谓的模块导入( import ),是指在一个模块中使用另一个模块的代码的操作,它有利于代码的复用。在 Python 中使用 import 关键字来实现这个操作,但不是唯一的方法,还有 importlib.import_module() 和 __import__() 等。也许你看到这个标题,会说我怎么会发这么基础的文章?与此相反。恰恰我觉得这篇文章的内容可以算是 Python 的进阶技能,会深入地探讨并以真实案例讲解 Python import Hook 的知识点。当然为了使文章更系统、全面,前面会

2020-10-28 23:11:13 451

原创 花了两个星期,我终于把 WSGI 给搞明白了

在 三百六十行,行行转 IT 的现状下,很多来自各行各业的同学,都选择 Python 这门胶水语言做为踏入互联网大门的第一块敲门砖,在这些人里,又有相当大比例的同学选择了 Web 开发这个方向(包括我)。而从事 web 开发,绕不过一个知识点,就是 WSGI。不管你是否是这些如上同学中的一员,都应该好好地学习一下这个知识点。由于我本人不从事专业的 python web 开发,所以在写这篇文章的时候,借鉴了许多优秀的网络博客,并花了很多的精力阅读了大量的 OpenStack 代码。为了写这篇文章,零零散

2020-10-28 12:40:43 719

原创 源码解读:Flask上下文与代理模式

在上一节中,我跟大家一起深入了解了一下Python的「上下文管理器 」。而今天呢,还是和上下文有关的话题。只不过这里的上下文和上一节的内容有点不一样,上下文管理器是管理代码块级别的上下文,而今天要讲的上下文是工程项目中的上下文。可能你现在对上下文这个概念,还是不太清楚。这里再简单说明一下一段程序或函数的运行,很多情况下,是需要依赖程序外的变量才能够运行的,一旦脱离了这些变量,程序就没法正常工作。这些外部变量,按照常规的做法,是将这些变量做为函数的参数,一个一个地传入进去。这是一种做法,对于简单的小程序完

2020-10-28 08:19:28 554

原创 用 Python Socket编程实现简易的在线聊天程序

1.什么是socket?说到网络编程,难免要提到socket?那什么是socket呢,中文名叫"套接字",更难理解了吧。通俗来讲,socket表示一个网络连接,通过这个连接,使得主机间或者一台计算机上的进程间可以通讯。不管是不同主机,还是同一主机。既然是通信,必定有一个发送方,一个接收方。对应一个客户端,和一个服务端。3.3.2 创建客户端创建socket,建立连接import socket# 指定IPv4协议(AF_INET),IPv6协议请使用AF_INET6

2020-10-27 13:06:28 1488

原创 深入理解 Python 中的元类

1. 类是如何产生的类是如何产生?这个问题肯定很傻。实则不然,很多初学者只知道使用继承的表面形式来创建一个类,却不知道其内部真正的创建是由type来创建的。type?这不是判断对象类型的函数吗?是的,type通常用法就是用来判断对象的类型。但除此之外,他最大的用途是用来动态创建类。当Python扫描到class的语法的时候,就会调用type函数进行类的创建。2. 如何使用type创建类首先,type()需要接收三个参数1. 类的名称,若不指定,也要传入空字符串:""2.

2020-10-27 08:20:38 621

原创 恶补了 Python 装饰器的八种写法,你随便问~

对于每一个学习 Python 的同学,想必对 @ 符号一定不陌生了,正如你所知, @ 符号是装饰器的语法糖,@符号后面的函数就是我们本文的主角:装饰器。装饰器放在一个函数开始定义的地方,它就像一顶帽子一样戴在这个函数的头上。和这个函数绑定在一起。在我们调用这个函数的时候,第一件事并不是执行这个函数,而是将这个函数做为参数传入它头顶上这顶帽子,这顶帽子我们称之为 装饰器 。1. Hello,装饰器装饰器的使用方法很固定先定义一个装饰器(帽子)再定义你的业务函数或者类(人)最后把这装饰器(帽子)扣

2020-10-27 08:16:45 283

原创 浅谈线程安全那些事儿

在并发编程时,如果多个线程访问同一资源,我们需要保证访问的时候不会产生冲突,数据修改不会发生错误,这就是我们常说的 线程安全 。那什么情况下,访问数据时是安全的?什么情况下,访问数据是不安全的?如何知道你的代码是否线程安全?要如何访问数据才能保证数据的安全?本篇文章会一一回答你的问题。1. 线程不安全是怎样的?要搞清楚什么是线程安全,就要先了解线程不安全是什么样的。比如下面这段代码,开启两个线程,对全局变量 number 各自增 10万次,每次自增 1。from threading import

2020-10-26 21:32:06 184

原创 实战异步IO框架:asyncio 下篇

前面两节,我们讲了协程中的单任务和多任务这节我们将通过一个小实战,来对这些内容进行巩固。在实战中,将会用到以下知识点:多线程的基本使用Queue消息队列的使用Redis的基本使用asyncio的使用1. 动态添加协程在实战之前,我们要先了解下在asyncio中如何将协程态添加到事件循环中的。这是前提。如何实现呢,有两种方法:主线程是同步的import timeimport asynciofrom queue import Queuefrom threading impo

2020-10-26 13:51:18 674 1

原创 深入异步IO框架:asyncio 中篇

今天的内容其实还挺多的,我准备了三天,到今天才整理完毕。希望大家看完,有所收获的,能给小明一个赞。这就是对小明最大的鼓励了。为了更好地衔接这一节,我们先来回顾一下上一节的内容。上一节,我们首先介绍了,如何创建一个协程对象.主要有两种方法通过async关键字,通过@asyncio.coroutine 装饰函数。然后有了协程对象,就需要一个事件循环容器来运行我们的协程。其主要的步骤有如下几点:将协程对象转为task任务对象定义一个事件循环对象容器用来存放task将task任务扔进事件循环

2020-10-26 08:20:26 627 1

原创 初识异步IO框架:asyncio 上篇

通过前两节的铺垫(关于协程的使用),今天我们终于可以来介绍我们整个系列的重点 -- asyncio。asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持。有些同学,可能很疑惑,既然有了以生成器为基础的协程,我们直接使用yield 和 yield from 不就可以手动实现对IO的调度了吗? 为何Python吃饱了没事干,老重复造轮子。这个问题很好回答,就跟为什么会有Django,为什么会有Scrapy,是一个道理。他们都是框架,将很多很重复性高,复杂度高的工作,提前给你做

2020-10-26 08:16:13 389

原创 深入理解Python 中的 yield from语法

直到上一篇,我们终于迎来了Python并发编程中,最高级、最重要、当然也是最难的知识点--协程。当你看到这一篇的时候,请确保你对生成器的知识,有一定的了解。当然不了解,也没有关系,你只要花个几分钟的时间,来看下我上一篇文章,就能够让你认识生成器,入门协程了。友情提醒:本系列所有的代码均在Python3下编写。Python2中可能有所差异。1. 为什么要使用协程在上一篇中,我们从生成器的基本认识与使用,成功过渡到了协程。但一定有许多人,只知道协程是个什么东西,但并不知道为什么要用协程?换句话来

2020-10-23 08:38:54 2304

原创 详解Python 的生成器与协程

从今天开始,我们将开始进入Python的难点,那就是协程。为了写明白协程的知识点,我查阅了网上的很多相关资料。发现很难有一个讲得系统,讲得全面的文章,导致我们在学习的时候,往往半知半解,学完还是一脸懵逼。学习协程的第一门课程,是要认识生成器,有了生成器的基础,才能更好地理解协程。如果你是新手,那么你应该知道迭代器,对生成器应该是比较陌生的吧。没关系,看完这系列文章,你也能从小白成功过渡为Ptyhon高手。1. 可迭代、迭代器、生成器初学Python的时候,对于这三货真的是傻傻分不清。甚至还认为他们

2020-10-22 21:35:47 475

原创 Python 并发编程(四):详解 Python 线程消息通信机制

前面我已经向大家介绍了,如何使用创建线程,启动线程。相信大家都会有这样一个想法,线程无非就是创建一下,然后再start()下,实在是太简单了。可是要知道,在真实的项目中,实际场景可要我们举的例子要复杂的多得多,不同线程的执行可能是有顺序的,或者说他们的执行是有条件的,是要受控制的。如果仅仅依靠前面学的那点浅薄的知识,是远远不够的。那今天,我们就来探讨一下如何控制线程的触发执行。要实现对多个线程进行控制,其实本质上就是消息通信机制在起作用,利用这个机制发送指令,告诉线程,什么时候可以执行,什么时候不可以

2020-10-22 13:26:08 547

原创 Python 并发编程(三):谈谈 Python 线程中的“锁机制”

1. 什么是锁?在开发中,锁 可以理解为通行证。当你对一段逻辑代码加锁时,意味着在同一时间有且仅能有一个线程在执行这段代码。在 Python 中的锁可以分为两种:互斥锁可重入锁2. 互斥锁的使用来简单看下代码,学习如何加锁,获取钥匙,释放锁。import threading# 生成锁对象,全局唯一lock = threading.Lock()# 获取锁。未获取到会阻塞程序,直到获取到锁才会往下执行lock.acquire()# 释放锁,归还锁,其他人可以拿去用了lock

2020-10-22 08:58:01 884

原创 Python 并发编程(二):创建多线程的几种方法

1. 用函数创建多线程在Python3中,Python提供了一个内置模块 threading.Thread,可以很方便地让我们创建多线程。threading.Thread() 一般接收两个参数:线程函数名:要放置线程让其后台执行的函数,由我们自已定义,注意不要加();线程函数的参数:线程函数名所需的参数,以元组的形式传入。若不需要参数,可以不指定。举个例子import timefrom threading import Thread# 自定义线程函数。def target(name=

2020-10-21 20:30:11 538

原创 Python 并发编程(一):从性能角度理解并发编程

1. 基本概念在开始讲解理论知识之前,先过一下几个基本概念。虽然咱是进阶教程,但我也希望写得更小白,更通俗易懂。串行:一个人在同一时间段只能干一件事,譬如吃完饭才能看电视;并行:一个人在同一时间段可以干多件事,譬如可以边吃饭边看电视;在Python中,多线程 和 协程 虽然是严格上来说是串行,但却比一般的串行程序执行效率高得很。一般的串行程序,在程序阻塞的时候,只能干等着,不能去做其他事。就好像,电视上播完正剧,进入广告时间,我们却不能去趁广告时间是吃个饭。对于程序来说,这样做显然是效率极低的,是

2020-10-20 21:44:07 344

原创 Python 炫技操作:判断是否包含子串的七种方法

Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错;在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)该篇是「炫技系列」的第三篇内容,在这个系

2020-10-20 19:41:02 1632

原创 Python 炫技操作:合并字典的七种方法

Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错;在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)该篇是「炫技系列」的第二篇内容,在这个系

2020-10-19 20:41:48 359 1

原创 Python 炫技操作:条件语句的七种写法

原代码这是一段非常简单的通过年龄判断一个人是否成年的代码,由于代码行数过多,有些人就不太愿意这样写,因为这体现不出自己多年的 Python 功力。if age > 18: return "已成年"else: return "未成年"下面我列举了六种这段代码的变异写法,一个比一个还 6 ,单独拿出来比较好理解,放在工程代码里,没用过这些学法的人,一定会看得一脸懵逼,理解了之后,又不经意大呼:卧槽,还可以这样写?,而后就要开始骂街了:这是给人

2020-10-18 14:54:23 168

原创 超详细图解:如何使用 WordPress搭建一个个人博客?

前两天我用WordPress 给自己搭建了一个网站,整个过程非常的顺利,体验非常地好,于是我就整个过程、以及其中的一些搭建心得,记录下来。如果你也正好有搭建个人网站的想法,那么本文会给你一个参考,也许看了这篇文章你就可以不用再百度、甚至谷歌了,因为我会写得 足够的细致而系统。1. 写在前面说到网站,其实我搭建过挺多个了。从最开始的 Hexo 静态博客,到后来使用 Django 仿照 Hexo -Next 主题自己写了一个有后端的个人博客。再后来又发现了 Sphinx + Github + Rea

2020-10-15 20:41:33 63824 51

原创 Python 炫技操作:模块重载的五种方法

环境准备新建一个 foo 文件夹,其下包含一个 bar.py 文件$ tree foofoo└── bar.py0 directories, 1 filebar.py 的内容非常简单,只写了个 print 语句print("successful to be imported")只要 bar.py 被导入一次,就被执行一次 print禁止重复导入'由于有 sys.modules 的存在,当你导入一个已导入的模块时,实际上是没有效果的。'>>&

2020-10-14 08:48:12 312

原创 Python 炫技操作:海象运算符的三种用法

Python 版本发展非常快,如今最新的版本已经是 Pyhton 3.9,即便如此,有很多人甚至还停留在 3.6 或者 3.7,连 3.8 还没用上。很多 Python 3.8 的特性还没来得及了解,就已经成为旧知识了,比如今天要说的海象运算符。海象运算符是在 PEP 572 被提出的,直到 3.8 版本合入发布。它的英文原名叫 Assignment Expressions,翻译过来也就是 赋值表达式,不过现在大家更普遍地称之为海象运算符,就是因为它长得真的太像海象了。1. 第一个用法:if/el

2020-10-13 12:56:29 244

原创 Python 炫技操作:连接列表的八种方法

Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错;在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)该篇是「炫技系列」的第三篇内容,在这个系

2020-10-12 21:11:57 194

原创 Python 炫技操作:连接列表的八种方法

Python 语言里有许多(而且是越来越多)的高级特性,是 Python 发烧友们非常喜欢的。在这些人的眼里,能够写出那些一般开发者看不懂的高级特性,就是高手,就是大神。但你要知道,在团队合作里,炫技是大忌。为什么这么说呢?我说下自己的看法:越简洁的代码,越清晰的逻辑,就越不容易出错;在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一个良好的品德简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)该篇是「炫技系列」的第三篇内容,在这个系

2020-10-12 19:44:02 180

原创 如何调试已经运行中的 Python 程序?

官方原始wiki:https://wiki.python.org/moin/DebuggingWithGdb在CentOS 下,安装包过程,官方给的不够详细。这里记录一下先安装 yum-utils,装完后就能使用 debuginfosudo yum install yum-utils然后使用debuginfo 安装 glibc,不过在安装之前,有可能 你需要先配置debuginfo的仓库,编辑/etc/yum.repos.d/CentOS-Debuginfo.repo#Debug Info[d

2020-10-12 10:43:40 797

原创 如何调试已经运行中的 Python 程序?

推荐下我本人原创的 《PyCharm 中文指南》电子书,内含大量(300张)的图解,制作之精良,值得每个 Python 工程师点个收藏。地址是:http://pycharm.iswbm.com

2020-10-12 10:30:57 163

原创 提升Python性能的7个习惯

转载自:https://zhuanlan.zhihu.com/p/381605861. 使用局部变量尽量使用局部变量代替全局变量:便于维护,提高性能并节省内存。使用局部变量替换模块名字空间中的变量,例如 ls = os.linesep。一方面可以提高程序性能,局部变量查找速度更快;另一方面可用简短标识符替代冗长的模块变量,提高可读性。2. 减少函数调用次数对象类型判断时,采用isinstance()最优,采用对象类型身份(id())次之,采用对象值(type())比较最次。#判断变量num是.

2020-10-11 10:07:06 214

原创 详解 Python 中的 with 与 上下文管理器

with 这个关键字,对于每一学习Python的人,都不会陌生。操作文本对象的时候,几乎所有的人都会让我们要用 with open ,这就是一个上下文管理的例子。你一定已经相当熟悉了,我就不再废话了。with open('test.txt') as f: print f.readlines()1. what context manager?基本语法with EXPR as VAR: BLOCK先理清几个概念1. 上下文表达式:with open('tes

2020-10-10 12:58:06 344

原创 别再使用 pprint 打印字典了

1. 吐槽问题pprint 你应该很熟悉了吧?随便在搜索引擎上搜索如何打印漂亮的字典或者格式化字符串时,大部分人都会推荐你使用这货 。比如这下面这个 json 字符串或者说字典(我随便在网上找的),如果不格式化美化一下,根本无法阅读。[{"id":1580615,"name":"皮的嘛","packageName":"com.renren.mobile.android","iconUrl&q

2020-10-10 08:36:06 487

原创 搞懂 Python 中多继承与Mixin设计模式

类的单继承,是我们再熟悉不过的,写起来也毫不费力。而多继承呢,见得很多,写得很少。在很多的项目代码里,你还会见到一种很奇怪的类,他们有一个命名上的共同点,就是在类名的结尾,都喜欢用 Mixin。1. 认识Mixin模式那我们今天就来讲讲这个 Mixin,对于这个Mixin,如何理解?它其实是一种设计模式,如果开发者之间没有产生这样一种设计模式的共识,那么设计模式将不复存在。为了让大家,对这个 Mixin 有一个更直观的理解,我摘录了网上一段说明。继承是一个”is-a”关系。比如轿车类继承交通工具类,

2020-10-09 12:44:37 352

原创 Python 中的新式类和经典类的区别?

1. 版本支持 / 写法差异在Python 2.x 中如果你至今使用的还是 Python 2.x,那么你需要了解一下,在Python 2.x中存在着两种类:经典类和新式类。什么是经典类?# 不继承自objectclass Ming: pass什么是新式类?# 显示继承objectclass Ming(object): pass在Python 3.x 中如果你已经摒弃了Python 2.x,而已经完全投入了Python 3.x的怀抱,那你可能不需要关心,因为在Py

2020-10-09 08:55:55 329 1

原创 值得收藏!15个 Pythonic 的代码示例

Python由于语言的简洁性,让我们以人类思考的方式来写代码,新手更容易上手,老鸟更爱不释手。要写出 Pythonic(优雅的、地道的、整洁的)代码,还要平时多观察那些大牛代码,Github 上有很多非常优秀的源代码值得阅读,比如:requests、flask、tornado,这里小明收集了一些常见的 Pythonic 写法,帮助你养成写优秀代码的习惯。01. 变量交换Badtmp = aa = bb = tmpPythonica,b = b,a02. 列表推导Badmy_list =

2020-10-08 13:39:15 4820 7

PyCharm 中文指南.pdf

由某云计算大佬总结的 PyCharm 使用手册,是国内第一本系统讲解 PyCharm 技巧使用的中文手册,内含 300 张的图片,是难得的优质手册。

2020-09-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除