- 博客(30)
- 收藏
- 关注
翻译 python里的metaclass
本文翻译自[What is a metaclass in Python?]作为对象的类在理解metaclass之前,你需要掌握python中类的知识。python里类的概念借鉴于Smalltalk语言,是一种非常独特的理念。在许多语言里,类只是用来定义怎样创建对象的一小段代码而已。在python中也有点相似。>>> class ObjectCreator(object):... pas
2015-03-30 22:43:26 497
原创 Git分支管理
遇到的问题我们在使用Git flow管理流程进行产品开发与迭代时,常常会在许多个分支上切来切去。有时候分支会被搞乱,本应该在A分支上进行迭代的功能却在B分支上实现,刚开始没有好的解决办法,就将错就错的开发下去。这种行为其实是很不负责的,虽然不会带来严重的问题,但也会污染线上代码,导致模块不清晰,功能不完善。后来意识到这种不合理性,找到了两个小点子对这种情况进行避免和补救。解决方法1、避免的方法,在终
2015-03-26 21:15:05 415
原创 rails+nginx实现高效率文件下载
什么是X-accel?Nginx反向代理服务器会根据服务器返回的header信息实现内部地址重定向,这依赖于X-accel。针对费时的请求,它能够使web服务快速地做一些额外工作(权限验证、日志记录等),然后直接将请求移交给Ngnix处理。这种技术通常被称为X-Sendfile。它的工作方式比较简单,服务器发送一个带 x-accel-redirect的header,ngnix解析出x-accel-r
2015-03-25 22:09:42 1490
原创 解决rails4.0中send_file文件下载两次的问题
遇到的问题之前在开发文件下载的功能时,我遇到了一个很奇怪的问题,点击下载链接,在chrome console中会出现两次请求,第一次返回200,下载的数据缓存在chrome的cache中,第二次返回304,直接从本地获取到下载的数据。查看服务器log,的确返回了两次数据。经过很长时间的定位与搜索,终于找到了问题的原因——rails4.0中引入了turbolink技术——当网页改变时,不会刷新整个页面
2015-03-24 22:09:07 1051
原创 Linux权限管理
创建新用户# 创建用户并添加到sudoerssudo adduser blogsudo adduser blog sudo修改用户组# 创建文件touch script.sh# 查看文件详情ll-rw-rw-r-- 1 blog blog 0 Mar 23 21:18 script.shsudo chgrp root script.sh-rw-rw-r-- 1 b
2015-03-24 21:20:09 486
原创 urllib2实现文件上传
需要做什么?如果使用get方法向服务器发送如下数据: name: zhangsan from: beijingcontent-type为application/x-www-form-urlencoded,则会传输数据: name=zhangsan&from=beijing可以看到两组数据被&分割,这样服务器就能够正确解析客户端上传的数据。那当使用post方法提交数据时,应该使用什么
2015-03-22 10:33:36 6509
原创 如何使用Python实现进程间通信
如何使用Python实现进程间通信socket是什么?在网络通讯中,socket是数据传输通道的节点,控制着数据的传输与接收。socket依靠两个主要的属性控制数据的传输与接收:地址族(address families)与连接类型(socket type)。#socket快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2015-03-19 23:01:28 1401
原创 如何将mysql数据导出成excel
SELECT ... FROM ... WHERE ... INTO OUTFILE 'file.csv' FIELDS TERMINATED BY ','
2014-09-17 22:32:17 2061
转载 python里那些有趣有用又低调的特性
1、List里的index方法。list.index('x'),当list里没有'x'时,并非返回-1,ers
2014-09-16 16:18:53 471
原创 Linux设置静态ip
/etc/network/interfacesauto eth0iface eth0 inet staticaddress 192.168.138.31netmask 255.255.254.0gateway 192.168.138.3dns-nameservers 8.8.8.8
2014-09-16 15:42:43 434
原创 使用glob和re进行文本批量处理
#-*-coding:utf8-*-import os,re,globdef glob_files(re_file): """获取指定路径下符合要求的文件""" files = glob.glob(re_file) return filesdef file_match(pattern, file): """获取指定文件匹配""" def search_match(pattern
2014-07-02 22:04:47 664
原创 实现斐波那契数列的几种方法
def fib(k): """Compute the kth Fibonacci number.""" prev, curr = 1, 0 # curr is the first Fibonacci number. for _ in range(k - 1): prev, curr = curr, prev + curr
2014-06-23 20:37:11 919
原创 python中的__all__与__import__
__all__ __all__属性由列表构成,它规定了模块的所有可见方法,会使属性列表之外的成员全部私有化。 只有在执行语句 from module import * 时,__all__属性才会起作用。此时所有枚举的成员被import,而其他成员被私有化。__import__ __import__(name, globals={}, l
2014-06-05 23:05:59 5591
原创 python多继承与mro
1、深度优先#!/usr/bin/env pythonclass Account: """bank account""" def __init__(self, holder): self.balance = 0 self.holder = holder def deposit(self, amount): self.balance = self.balance + amou
2014-04-14 23:10:48 610
原创 SICP Section 2.2.1
Exercise 2.17#lang racket(define (last-pair l) (if (null? (cdr l)) l (last-pair (cdr l))))Exercise 2.18#lang racket; (define (reverse list); (define (mid-reverse list midl
2013-04-10 21:28:55 524
原创 SICP Section 2.1.4
Exercise 2.7#lang racket(define (make-interval a b) (cons a b))(define (upper-bound interval) (cdr interval))(define (lower-bound interval) (car interval))Exercise 2.8#lang racket(define
2013-04-09 22:59:36 511
原创 SICP Section 2.1.3
Exercise 2.4#lang racket(define (cons x y) (lambda (m) (m x y)))(define (car z) (z (lambda (p q) p)));(cons x y) return a procedure (lambda (m) (m x y));that takes a procedure m as argument
2013-04-08 22:31:31 620
原创 SICP Sections 2.1.1-2.1.2
Exercise 2.1#lang racket;the greatest common divisor of the two integers(define (gcd a b) (if (= b 0) a (gcd b (remainder a b))));reduce the numerator and the denominator to the low
2013-04-08 00:35:15 524
原创 栈的简单应用——四则运算(三)
待解决问题 如何计算带括号的四则运算?解决方案 一、采用符号入栈的解决方式,只是圆括号的操作方式会有所改变。圆括号的优先级最高,"("入栈后,只有遇到")"后才会出栈,并且要先弹出"("后的遗留操作符,保证"( )"中的表达式先被执行。"( )"中的加减乘除操作保持正常的栈处理方式。 二、采用lisp解决问题的思路。所有的"( )"内的操作都是一样的
2013-02-02 20:26:33 596
原创 栈的简单应用——四则运算(二)
待解决问题 解决任意整数或小数的加减乘除四则运算。解决方法 在后缀表达式中把整数或小数放到圆括号里,将它们作为一个整体来处理,例如,"2+50"会转换为"2(50)+","2.1+1.2"会被转换为"(2.1)(1.2)+"。 程序只需在读到的元素为数字时,继续读取下一个元素,下一个元素为数字或小数点则将它与之前的数字拼接到一起,最后当遇到操作符
2013-02-02 15:32:23 610
原创 栈的简单应用——四则运算(一)
在Java中用堆栈实现四则运算是一种很巧妙的方法。栈的先进后出原理可以很方便地判断并控制加、减、乘、除的优先级,利用这一优势,我们可以很高效的将一个中缀表达式转换为去除符号优先级的后缀表达式。一、基础知识中缀表达式 数学上的四则运算算术式,比如:2+3*4后缀表达式 不考虑符号优先级的表达式,比如:(2+3*4)经过转换之后的结果
2013-01-08 09:36:13 2906 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人