Python学习记录

Python的创始人为
吉多·范罗苏姆
(Guido van Rossum)

    Python英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种面向对象直译式电脑程序语言。它包含了一组功能完备的标准库,能够轻松完成很多常见的任务。它的语法简单,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    与SchemeRubyPerlTcl动态语言一样,Python具备垃圾回收功能,能够自动管理内存使用。它经常被当作脚本语言用于处理系统管理任务和网络程序编写,然而它也非常适合完成各种高级任务。Python虚拟机本身几乎可以在所有的操作系统中运行。使用一些诸如py2exe、PyPy、PyInstaller之类的工具可以将Python源代码转换成可以脱离Python解释器运行的程序。

    Python的官方解释器是CPython,该解释器用C语言编写,是一个由社区驱动的自由软件,目前由Python软件基金会管理。

Python支持命令式程序设计面向对象程序设计函数式编程面向侧面的程序设计泛型编程多种编程范式。

Function call can be replaced with set literal

2018年12月06日

最近在Python中,使用如下代码:ALLOWED_EXTENSIONS = set(['png', 'jpg', 'jpeg', 'gif'])但是PyCharm如下提示:Function call can be replaced with set literal可以直接使用字典,修改成如下代码:ALLOWED_EXTENSIONS = {'png', 'jpg', 'jpeg', 'gif'}...

flask和redis组合的一些案例文章

2018年12月03日

最近网站数据达到20w左右,每天数据在以7000的量增加,在统计的时候网站性能不是很理想,需要用到缓存。通过flask连接到redis的代码如下:# -*- coding: utf-8 -*- import redis import time start = time.clock() redisClient = redis.StrictRedis(host='localhost',...

Pyhotn导入模块中的所有类

2018年11月22日

要导入模块中的每个类,可以使用下面的语法:form module_name improt *不推荐使用这种导入方式,其原因有二。首先,如果你只看一下文档开头的import语句,就能清楚地知道了程序使用了哪些类,将大有裨益、但这种导入方式没有明确的指出你使用了模块中的哪些类。这种导入方式还可能引发命名方面的困惑。如果你不小心导入了一个与程序文件中其他东西同名的类,将引发难以诊断的错误。这里之所以介绍...

Python 类编码风格

2018年11月22日

在编写复杂的程序的时候,你必须熟悉与类有关的编码风格问题。类应该采用驼峰命名法,即将类中的每个单词的首字母都大写,而不是用下划线。实例名和模块名都采用小写格式,并在单词之间加上下划线。对于每个类,都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要的描述类的功能,并遵循编写函数的文档字符串时采用的格式约定。每个模块都应该包含一个文档字符串,对其中的类可用于做什么进行描述。可用空行来组织代码,...

Jinja2 如何判断是否为空

2018年11月17日

最近需要在Jinja2判断list是否为空,才开始这样写:{% if pro_brand is not None %} {% endif %}之后报错,参考了一下Stack Overflow,这个问题终于解决问题了:{% if pro_brand is not none %} {% endif %} 最后代码截图:2019年6月30日更新:有留言说上面还是报错,之后修改为如下内容:{% if ...

简述 __init__、__new__、__call__ 方法

2018年11月09日

任何事物都有一个从创建,被使用,再到消亡的过程,在程序语言面向对象编程模型中,对象也有相似的命运:创建、初始化、使用、垃圾回收,不同的阶段由不同的方法(角色)负责执行。定义一个类时,大家用得最多的就是 __init__ 方法,而 __new__ 和 __call__ 使用得比较少,这篇文章试图帮助大家把这3个方法的正确使用方式和应用场景分别解释一下。关于 Python 新式类和老式类在这篇文章不做...

SQLAlchemy filter和filter_by写法的一些区别

2018年11月05日

最经经常在filter和filter_by之间切换,有的时候很容易搞混,今天总结一些内容,记录如下:filter():把过滤器添加到原查询上,返回一个新查询filter_by():把等值过滤器添加到原查询上,返回一个新查询可以看到filter()和filter_by()的一个异同,一个是过滤器,一个是等值过滤器,两个具体有什么区别呢?看写法:filter():PhoneNumber_List.qu...

在 Flask-SQLAlchemy 中联表查询

2018年10月31日

SQLAlchemy 是一个功能强大的 ORM 。 Flask-SQLAlchemy 是一个 Flask 插件,它让我们在 Flask 框架中使用 SQLAlchemy 变得更容易。本篇介绍我在使用 Flask-SQLAlchemy 2.1 时进行联表查询的一些经验。表定义这里有两个表,account 表保存帐号 ID 和昵称,bind 表保存 account 之间的绑定关系。# 省略了外键定义,...