工作面试是个很有意思的过程,
面试经常是一个对未知领域初步了解的最好时机(对双方都是),
面试官和面试人通常也会尽力在最短的时间里表达/接受尽可能多的信息.
因此面试题一般也是比较有趣的:
它浓缩了日常工作中的典型和有挑战性的问题,
而又不会带有太多日常工作中的繁琐.
继续阅读 »
最近在学习Tkinter的知识,这使用图片时发现不能正常显示,google一下,发现Tkinter默认支持gif格式,使用其他格式的文件需要安装PIL模块。不过在安装过程中出现了一下错误问题:
```
1 warning generated.
clang: warning: -framework Tcl: 'linker' input unused
clang: warning: -framework Tk: 'linker' input unused
In file included from _imagingtk.c:19:
/Applications/Xcode.app/Contents/Developer/Platform
继续阅读 »
获取一个类的所有子类
代码来源:rally
def itersubclasses(cls, _seen=None):
"""Generator over all subclasses of a given class in depth first order."""
if not isinstance(cls, type):
raise TypeError(_('itersubclasses must be called with '
'new-style classes, not %.100r') % cls)
_seen = _se
继续阅读 »
GIL
熟悉Python的人对GIL这货可定都不陌生, 全局解释器锁(Global Interpreter Lock)简称GIL, 这货是
Python多线程的核心机制。由于Python的线程实际是操作系统的原生线程,多个线程同时执行同一段字节码可能
会导致很多问题(比如: 内存管理的引用计数需要线程安全机制的保护),于是使用GIL这把大锁锁住其他线程,保
证同一时刻只有一个线程可以解释执行字节码。关于GIL的更多分析,
可以看David Beazley大神的研究。本文主要分析下CPython的GIL在Linux上
基于pthread的实现细节,看完这些源码后能够对GIL有更深入的理解。
GIL的定义
有人可能会想,从GIL的
继续阅读 »
下列代码全部基于python3.4
more
``` python
import urllib.parse,urllib.request,http.cookiejar,os,xlrd,xlwt3,time,random
print ("######## 确保关闭了所有的EXCEL,运行时不要打开任何EXCEL文件 ########")
rfile = xlrd.open_workbook('read.xls')
rfile.sheet_names()
rsheet = rfile.sheet_by_name(u'Sheet1')
resultfilenum = 0
result = str(resultfilenum)
继续阅读 »
Supervisor (http://supervisord.org) 是一个用 Python 写的进程管理工具,可以很方便的用来启动、重启、关闭进程(不仅仅是 Python 进程)。除了对单个进程的控制,还可以同时启动、关闭多个进程,比如很不幸的服务器出问题导致所有应用程序都被杀死,此时可以用 supervisor 同时启动所有应用程序而不是一个一个地敲命令启动。
继续阅读 »
先说说转Java的事
我实习回来没几天, @佛爷 和 @子健 就找我谈换技术栈,我当时还挺郁闷的。
刚转 Python 不到两年,而且 Python 本身就很适合小团队,为啥要换呢?
聊完之后我明白了,关键是 Java “方便找工作”。 @子健 也提到,他在阿里实习生群里统计了一下:
总共两百多人,三十多个前端,七八十个 Java,一百多个算法。Python 在国内还是太小众了,
工作岗位太少,大公司用 Python 也只是做运维之类的工作。
大公司用的后端语言主要还是 Java 和 C++,笔试面试除了考算法,主要也就考这两门语言,
毕业后想去 BAT 的话,转 Java 有很大优势。
继续阅读 »
Table of Contents
{:toc}
最近遇到了一些函数式编程的概念,心想我用 Python 的 map reduce 不就是在函数式编程嘛,
但看了半天仍然一头雾水,什么是 UnitBox?flatMap 和 map 差在哪里?于是先学了阮老师的[函数式编程入门教程][1],
唉哟喂,和我原来想的还不一样,Python 这些操作虽然算是函数式编程,但要系统地理解为什么能这样,
还得从头说起。
继续阅读 »
什么是 reload
当我们在 python 的交互模式下测试某个类的时候,发现这个类的某个方法有错误进行了修改,而这个方法的输入又依赖于之前在交互模式下的好几个操作,这时要怎么办呢?如果重启交互模式,那么该方法依赖的操作就得重新再来一次,相当麻烦。这时 reload 就能派上用场了。 reload 内建方法用于重新导入一个模块,如果相应的python脚本代码被修改了,用 reload 重新导入后就是修改后的新模块而不需要重启整个程序了。
继续阅读 »
使用python编写的客户端程序,需要进行打包,所以选择使用pyinstaller进行打包。但是由于一些原因打包的程序要希望可以做到自解压缩格式,同时创建桌面快捷方式,所以就选择使用winrar进行处理。
前提说明,使用pyinstaller打包时,没有打成onefile形式,因为此类型对多进程有些影响。
继续阅读 »