Python中的函数装饰器

Python中的装饰器是一个可调用对象,它的参数是一个函数,返回值为一个可调用对象。大部分情况下我们都会把装饰器定义为一个函数,如:

1
def deco(func):
2
    return func

函数deco就是一个装饰器,虽然它什么都没干,但是它就是一个符合标准的最简单的装饰器,它的用法也非常简单,就是直接调用:

1
def target():
2
    pass
3
4
target = deco(target)
5
6
# 因为装饰器deco会返回一个可调用对象,所以
7
# 这里可以对target进行调用
8
target()

Python中的collections.namedtuple

collections.namedtuple是一个工厂方法,它可以动态的创建一个继承tuple的子类。跟tuple相比,返回的子类可以使用名称来访问元素。

使用方法

用一个例子来介绍:

1
>>> from collections import namedtuple
2
>>> Account = namedtuple("Account", ["name","pwd"]) ①
3
>>> account = Account(*("bingyang", "123456"))  ②
4
>>> account.name
5
'bingyang'
6
>>> account.pwd
7
'123456'

①创建一个名称为Account的类,该类拥有两个属性namepwd,将这个类赋值给变量Account
②调用这个类,并传递属性的值。 值的顺序要跟定义属性的顺序一致,或者是使用另外一种方式: Account(name='bingyang', pwd='123456')

nametuple一共支持4个参数:def namedtuple(typename, field_names, verbose=False, rename=False)

Python中的排序

原文https://docs.python.org/3/howto/sorting.html

Python集合有一个内置的方法list.sort()用来对集合进行排序,它会修改集合本身。还有一个内建的函数sorted(),它可以从一个迭代器创建一个新的排序集合,这意味着它不会修改原来的集合。

这本文中,我们探索使用Python排序数据的各种技术。

基本的排序

对集合进行升序排序是非常简单的一件事情,只需要调用函数sorted(),它返回一个新的排序集合:

1
>>> sorted([5, 2, 3, 1, 4])
2
[1, 2, 3, 4, 5]

你也可以使用list.sort()方法,它会修改集合本身,返回值为None。 通常它没有sorted()方法,但是如果你不需要原来的集合,它在性能上会稍微高效一点。

1
>>> a = [5, 2, 3, 1, 4]
2
>>> a.sort()
3
>>> a
4
[1, 2, 3, 4, 5]

另一个不同的地方是方法list.sort()只定义在集合中,相反,函数sorted()接受任何迭代器。

1
>>> sorted({1: 'D', 2: 'B', 3: 'B', 4: 'E', 5: 'A'})
2
[1, 2, 3, 4, 5]

Flask使用小结

本文记录总结使用Flask进行Web开发常用的一些知识点

最简单的实例

1
from flask import Flask
2
app = Flask(__name__)
3
4
@app.route('/')
5
def index():
6
    return "Hello World"
7
8
if __name__ == "__main__":
9
    app.run(
10
        host = "192.168.0.10",
11
        port = 14444,
12
        debug = True
13
    )

debug: 在开发环境中设置为true,可以使得在修改保存文件后,自动重启服务。并在页面上抛出更详情的错误信息,方便调试。

sqlalchemy使用小结

本文记录了sqlalchemy基础常用的一些操作

创建模型

1
from datetime import datetime
2
from sqlalchemy.ext.declarative import declarative_base
3
from sqlalchemy import Column, Integer, String, DATETIME, PrimaryKeyConstraint
4
Base = declarative_base()
5
6
class User(Base):
7
    __tablename__ = 'user' #表名
8
    __table_args__ = (
9
        PrimaryKeyConstraint('user_id', name='PK_USER_ID'), # user_id为主键名称
10
    )
11
    
12
    user_id = Column(Integer)
13
    user_name = Cloumn(String(50), nullable=False)
14
    user_pwd = Column(String(50), nullable=False)
15
    create_time = Column(DATETIME, default=datetime.now)
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×