
Python小站
Despairvip
努力坚持
展开
-
list、dict、tuple分类
看到一个题目,说是把list、dict、tuple进行分类由于list和tuple的元素都是单个,并且用逗号分开, list和tuple归类于序列化,dict归类于映射类型原创 2018-01-10 22:47:25 · 505 阅读 · 0 评论 -
class-besd-views常用Mixin
前后端分离,不需要渲染模板,只使用常用的MixinLoginRequiredMixin: 检测用户登录状态, 导入:from django.contrib.auth.mixins import LoginRequiredMixin 用法:直接在class views 上继承,放在父类View前面PermissionRequiredMixin: 验证当前用户是否满足当前权限 导入:...原创 2018-03-28 10:10:52 · 455 阅读 · 0 评论 -
python的函数参数
python函数拥有四种参数类型:位置参数、默认参数、可变参数、关键字参数位置参数:位置参数也是一个函数被调用的时候必须传入的参数,如果不传就会报没有位置参数的错误默认参数:当一个拥有默认参数的函数被调用的时候,如果默认参数没有被新的值覆盖,就会使用默认参数的值带入函数,这个值是可以被覆盖的可变参数:可变参数的本质就是tuple,函数使用*args 表示可变参数,这个函数可以一次接受多...原创 2018-05-06 10:53:28 · 360 阅读 · 0 评论 -
多进程和多线程
进程是CPU资源分配和调度的独立单位 线程是CPU最小的之心单元 编写多进程一般使用跨平台版本的模块 multiprocessing multiprocessing提供了一个Process类来代表进程类from multiprocessing import Process//进程要执行的代码def say(name): print("%s say hello"%nam...原创 2018-05-08 10:18:03 · 243 阅读 · 0 评论 -
RESTful格式规范
RESTful是接口开发格式里面很重要的一个山头,基本开发接口都需要遵守这个规范,它共有十条规范格式: 1、域名,一般将api放在组域名下 http://www.example.com/api/2、版本,一般把接口的版本号放在url中 http://www.example.com/app/1.0/info http://www.example.co...原创 2018-05-10 18:58:38 · 2331 阅读 · 0 评论 -
合理使用缓存
一个优秀的项目,其中必然使用到了缓存机制 一个网站遇到性能瓶颈是,第一个解决方案一般是使用缓存,缓存的应用面特别广,无论是客户端,还是应用服务器,或是存储服务器。缓存一般存放读写比价频繁,变化较少的数据,应用程序读取数据时先从缓存中读取数据,获取不到再访问数据库,再放到缓存中,以便于下次快速获取。缓存并不是没有缺点,内存资源是宝贵的,不可能讲所有的数据都放到缓存中,对于休干比较频繁的数据原创 2018-01-09 23:43:48 · 452 阅读 · 0 评论 -
CPU密集型和I/O密集型
I、CPU密集型(CPU-bound)一、CPU密集型也叫计算密集型,指的是硬盘、内存在读写数据时要比CPU速度快的多,CPU要读写I/O时,I/O在很短的时间内完成,CPU有很多的运算还要处理二、在多重程序系统(即同时运行多道程序或多处理机同时执行多个程序序列)中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过...原创 2019-04-08 11:17:15 · 683 阅读 · 0 评论 -
Python实现类似Java的反射
反射是通过字符串的形式操作对象的相关成员反射也就是通过字符串的形式,导入模块,通过字符串的形式去模块中寻找指定函数,并执行。Python中的反射功能有四个主要内置函数提供:1、hasattr(模块, ‘成员’):根据字符串的形式,去某个模块中检查是否含有某个成员2、getattr(模块, ‘成员’):根据字符串的形式,去某个模块中获取成员。详细用法3、setattr(模块, ‘成员...原创 2019-04-08 11:26:18 · 895 阅读 · 0 评论 -
Pytho面向对象的成员组成部分
类成员可以分为三类:字段、方法、属性一、字段字段包含普通字段和静态字段,在定义是有区别,本质的区别在于他们内存中保存的位置不同class TestObj: # 静态字段 my_class = '五(三)班' def __init__(self, name): self.name = name# 直接通过类访问静态字段TestObj.my_cl...原创 2019-04-08 11:28:06 · 252 阅读 · 0 评论 -
python getattr的美妙生活
一、简介1、getattr是Python的内置函数2、用法getattr(object,“attribution”,None)object: 对象attribution:实例方法、或者类方法(object是一个类对象的时候)必须是strNone:默认值,如果没有attribution,或者没有返回值,返回默认值一句话简介:拿到对象是的该属性二、实例class Test:...原创 2019-04-08 11:30:01 · 297 阅读 · 0 评论 -
Python的attr三兄弟(getattr、hasattr、setatter)
阅读源码的时候,经常看见hasattr、getattr、setattr,感觉很酷炫的同时,也是不解其义,特此来说说道说道这三兄弟getattr已经介绍过了,主要说说setattr和hasattrhasattr(对象,属性名)I、基本操作1、查看对是不是该属性,返回值为boolean类型2、 一个危险的Python函数,不推荐使用这篇文章说道hasattr会把@property装饰的方法...原创 2019-04-08 11:31:24 · 1102 阅读 · 1 评论 -
属性property
class Money(object): def __init__(self): self.money = 0 def get_money(self): return self.money def set_money(self, value): if isinstance(value, int):原创 2018-01-19 17:31:02 · 355 阅读 · 0 评论 -
python 装饰器
def demo(fun): def inner(): print("hello word") return fun() return inner@demodef decorator(): print("哈哈哈")if __name__ == '__main__': decorator()一个函数在没有呗调用的时候是不原创 2018-01-19 17:05:37 · 267 阅读 · 0 评论 -
用python实现一个栈类
栈(Stack)的数据结构特点就是先进后出,就像自动售货机 里面的商品一样,最先放进去的最后出来,最后放进去的却是最先出来用python类实现栈class Stack(object): def __init__(self): # 创建一个空的栈 self.item = [] def push(item): # 添加新元素原创 2018-01-12 18:55:11 · 2098 阅读 · 0 评论 -
async的使用方法
async意思就是异步,用它来实现协程再好不过了async def demo1(): print("start1") print("end1")async def demo2(): print("start2") print("1") print("2") print('end2')c = demo1()d = demo2()原创 2018-01-17 21:01:00 · 11193 阅读 · 1 评论 -
reload()函数
reload函数的作用是重新加载已经导入过的包 在python中由.py结尾的文件都是一个可以调用执行的模块, 但是由于导入模块会浪费资源(模块导入必须找到代码文件,并且把它转化为字节码,还要运行代码), 所以python在一个模块中已经导入了一个包,如果这个包里面的代码再发生变化的话,在这个模块中的包还是按照没有变更之前的代码运行,但是这显然是不行的,这时候就需要用reload了。re原创 2018-01-17 21:14:07 · 2277 阅读 · 0 评论 -
python 迭代器
迭代是访问集合元素的一种方式,迭代器是一个可以记住遍历位置的对象,从第一个元素迭代到最后一个元素,迭代器只能往前,不能后退。可迭代对象: list、dict、tuple、str 不能迭代: int类型 把可以通过for...in...这类语句迭代读取一条数据供我们使用的对象称之为可迭代对象可以使用isinstance()来判断一个对象是否是可迭代对象( Iterable )In原创 2018-01-18 13:10:00 · 324 阅读 · 0 评论 -
python 生成器
生成器是一类特殊的迭代器创建生成器最简单的方法是吧列表生成式的”[]”改成”()”(x*2 for x in range(10))可以按照迭代器的方法来使用,通过next()、list()、for循环使用使用生成器来完成菲波拉切数列更加简便def fib(n): current = 0 num1, num2 = 0, 1 num = n原创 2018-01-18 13:50:42 · 264 阅读 · 0 评论 -
python 闭包
闭包就是定义一个函数,在这个函数里面再定义一个函数,并且这个函数用到了外面的函数的变量,将这个函数和使用的变量称之为闭包如果需要修改外层函数已经赋值的变量需要使用nonlocaldef con(start=0): def demo1(): nonlocal start start += 1 return start ret原创 2018-01-18 14:09:19 · 199 阅读 · 0 评论 -
Python的几种常见排序
常见的排序有:快速排序、冒泡排序、希尔排序、选择排序、插入排序、归并排序冒泡排序:def bubble_sort(li): n = len(li) # 遍历列表,让下标从0取得列表右边倒数对二个位置 # 一趟冒泡,让最大的数移动到最右边 for j in range(n-1): flag = 0 for i in ran原创 2018-01-11 22:06:23 · 840 阅读 · 0 评论 -
python 的字典、列表、字符串操作
1、python字符操作:字符串操作很多。可以在ipython 通过 a = "" a.tab键查看部分(1) 字符串本质是字符序列,是不可变的但是可以进行赋值(=)、复制(*)、拼接(+)(2)replace()替换,把字符串进行替换(可以整段替换,可以替换部分)(3)split() 分割,根据字符串里面的元素把字符串进行分原创 2018-01-24 21:30:34 · 675 阅读 · 0 评论 -
用Python获取文件下的所有文件
python 获取当前文件下的所有文件有两个方法:os.walk() 、os.listdir() 获取当前路经:sys.path[0]、sys.argv[0]os.walk()import osdef get_file_name(path_file): for root, dirs, files in os.walk(path_file): print(r原创 2018-01-10 19:23:24 · 1414 阅读 · 0 评论 -
用Python获取文件下的所有文件
python 获取当前文件下的所有文件有两个方法:os.walk() 、os.listdir() 获取当前路经:sys.path[0]、sys.argv[0]os.walk()import osdef get_file_name(path_file): for root, dirs, files in os.walk(path_file): pri原创 2018-01-10 19:42:27 · 358 阅读 · 0 评论 -
动态一时爽,重构火葬场?
江湖有言:”动态一时爽,重构火葬场“,更有人戏言:”动态一时爽,一直动态一直爽原创 2019-04-08 11:33:03 · 1216 阅读 · 0 评论