KevinHuang

KevinHuang的博客


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 一些书

  • 常用命令

  • python tips

  • 站点地图

  • rss

  • 公益404

  • 搜索

2017年度Python榜单

发表于 2016-01-22 | 分类于 python | 阅读次数:
一起见证全世界Python的这一年非常抱歉这个榜单到现在才发出来,主要有2个原因:1. 本来准备起用 http://ipython.io 这个域名;2.域名备案时间长,造成后续事情都等;3. 对榜单运营的数据需要的精力和时间预估不够。好在赶在1月的尾巴上线了。话不多说,之后我们详聊。地址是 https://annual2017.pycourses.com/榜单内容如下: 开始页 2017年Star最多的Python项目 2017年最受关注的Python项目 2017年最受关注的中国开发者Python项目 项目/文章介绍 系统设计入门 2017年最受欢迎的Web框架 2017年最受欢迎的爬虫框架 项目/文章介绍 不建议使用的Python Web框架 2017年最受欢迎的pycon视频10.2017年必备的Python工具 2017年要熟悉的Python项目 项目/文章介绍 知乎响应这么慢是因为使用了 Python 语言吗? 2017年最受欢迎的Python开发者 2017年最知名的中国Python开发者 项目/文章介绍 Code Like a Pythonista: Idiomatic Python 2017年最受欢迎的Python英文文章 2017年最受欢迎的Python中文文章 项目/文章介绍 Reddit Python节点 2017年最受欢迎的Django英文文章 2017年最受欢迎的Django中文文章 项目/文章介绍 [英]给Django贡献代码比你想得简单 2017年最受关注的podcast 2017年最受关注的英文技术博客 2017年最受关注的中文技术博客 项目/文章介绍 10 books Python developers should be reading(podcast) 2017年最受关注的Python英文书籍 2017年最受关注的Python中文书籍 ...
阅读全文 »

python几个特别的__开头的方法

发表于 2016-01-21 | 分类于 python | 阅读次数:
前言A Guide to Python’s MagicMethodspython的绝大多数这样的特殊方法都在这里面被提到了. 今天我来说3个他没有提到的[dir, slots, weakref],再强调下他提到的2个[missing, contains] dir -> 看个小例子就知道了1234567In [1]: class T(object): ...: pass ...: In [2]: t = T() In [3]: t.<Tab> 啥也没有... 12345678910In [4]: class T2(object): ...: def __dir__(self): ...: return ['a', 'b'] ...: In [5]: t = T2() In [6]: t. t.a t.b In [7]: dir(t) Out[7]: ['a', 'b'] 看出来了把, 不解释, 但是这个dir是相对于类的实例有效果的. slots这个在我初学python的时候就被模糊了, 原来的理解是它的出现替代了dict,也就是说你只能给slots这个变量列表项的属性赋值. 对外的接口减少了,也安全了. 后来看了这篇Saving 9 GB of RAM with Python’sslots.好久不做运维了,在生产环境究竟怎么样我无法定论, 也提到了,在对象实例很多的时候他能帮助减少内存,详见<https://www.safaribooksonline.com/library/view/python-cookbook-3rd/9781449357337/ch08s04.html>.这里来个小实验(在Hacker News也被讨论过https://ne ...
阅读全文 »

使用Python进行并发编程-asyncio篇(一)

发表于 2016-01-20 | 分类于 python | 阅读次数:
由于asyncio有非常多的内容,且对Python工程师非常重要,我将分为三篇文章来介绍它。本篇还不是 关于使用asyncio进行网络编程的文章,而是继续并发主题,看看使用asyncio怎么实现高效的并发程序。 前言在Python2的时代,高性能的网络编程主要是使用Twisted、Tornado和Gevent这三个库,但是它们的异步代码相互之间既不兼容也不能移植。如上一节说的,Gvanrossum希望在Python3 实现一个原生的基于生成器的协程库,其中直接内置了对异步IO的支持,这就是asyncio,它在Python 3.4被引入到标准库。Python 3.5添加了async和await这两个关键字,分别用来替换asyncio.coroutine和yield from。自此,协程成为新的语法,而不再是一种生成器类型了。事件循环与协程的引入,可以极大提高高负载下程序的I/O性能。除此之外还增加了async with(异步上下文管理)、async for(异步迭代器)语法。特别说的是,在新发布的Python3.6里面终于可以用异步生成器了!/顺便说一下Twisted。虽然在之前的公司Twisted使用的还挺广泛,它的Reactor、Factory、Deferred、Protocol等编程的思想很有启发性,在当时已经非常先进了,而asyncio也借鉴了一部分。但是它太重、大量的回调(Javascript工程师很容易接受,比如Deferred,小明我不喜欢)、没有及时更新的中文相关的技术文档和书籍所以学习曲线较高、没有更多的公司出来分享对应的实践,再加上协程的冲击,最近1-2年已经很少看到它的身影,不建议新人再去学习它了。 并发哪家强首先需要明确一点,asyncio使用单线程、单个进程的方式切换(通常程序等待读或写数据时就是切换上下文的时机),那这样效率高嘛?实践是检验真理的唯 ...
阅读全文 »

仿Djangobook的Markdown文章评注系统

发表于 2016-01-19 | 分类于 python | 阅读次数:
前言写这个评注系统是因为最新写书, 想找个更顺畅的和编辑沟通的方式, 提高工作效率。学Django的同学应该都访问过: http://djangobook.py3k.cn/ ,它和Djangobook官网有个很重要的功能: 评注系统。在这里先向VCC致敬,虽然很久没有继续维护,但是这个评注的功能还是很不错的。我也翻了Djangobook的Git提交记录, 没有找到实现的方式。 而且最重要的是, 它是通过ReStructuredText生成的静态页面,不符合我的需求。所以有了今天说的Aiglos可以看Heroku上的Demo看看效果, 其中的文档使用了https://github.com/GitbookIO/markdown 功能 在线浏览渲染的本地Markdown文件。 提供 http://djangobook.py3k.cn/2.0/ 那样的评注系统。 评注支持Markdown语法。使用的技术Flask: Web框架Mako: 模板语言Flask-Mako: Mako支持的Flask扩展Flask-SQLAlchemy:SQLAlchemy的Flask扩展mistune: Markdown渲染cython: Python转化到C的编译器, 可以让mistune渲染更快使用说明 12345678❯ git clone https://github.com/dongweiming/aiglos ❯ cd aiglos ❯ virtualenv-2.7 venv ❯ source venv/bin/activate ❯ pip install -r requirements.txt ❯ touch local_settings.py # 增加BOOK_DIR (Markdown文件存放目录), SQLALCHEMY_DATABASE_URI等配置 ❯ gunic ...
阅读全文 »

如何让类中的方法不需要提供self参数

发表于 2016-01-18 | 分类于 python | 阅读次数:
前言在我初学Python的时候,对方法/函数2种叫法如何区分产生或疑惑。所谓函数,是一段代码,通过名字来进行调用。它能将一些数据(参数)传递进去进行处理,然后返回一些数据(当然也可能并不需要返回)。而方法是一种定义在类里面的函数,它的特殊之处是和对象相关,必须有一个额外的第一个参数名称,但是在调用这个方法的时候开发者并不需要为这个参数赋值,Python会自动提供这个值。这个特别的变量指对象本身,按照惯例它的名称是self。我们先通过一个例子感受下Python是如何自动给这个参数赋值的: 1234567891011class Person(object): def sayHi(self): print 'Hi!' p = Person() p.sayHi() p = Person() Person.sayHi(p) 这2种方式都是正确的。注意第二种,sayHi中传递了一个Person对象p进去,相当于我们「人工」来赋值。而第一种(也是我们日常用的这种)是由Python隐式的这样转换的罢了。再想一个更复杂的例子,假如你有一个类称为MyClass和这个类的一个实例MyObject。当你调用这个对象的方法MyObject.method(arg1,arg2)的时候,这会由Python自动转为MyClass.method(MyObject, arg1, arg2) - 这就是self的原理了。假如我们不传递这个self试试: 12345678class Person(object): def sayHi(): print 'Hi!' p = Person() p.sayHi() 执行一下: 12345Traceback (most recent call last): File "se ...
阅读全文 »

我维护的colout

发表于 2016-01-17 | 分类于 python | 阅读次数:
####前言一直在努力进步,其实也在想做点项目,也作了一些东西,最近的计划就是看celery,pelican,然后开始看django,看requests,其实任务还是很重的。上段时间github转悠,发现一个挺有意思的东西colout:一个python的命令行显示彩色字符的软件,支持正则,支持各种语法的插件,但是作者呢..怎么说呢也算是我为了练手,给他维护这个项目,####我维护的内容正如我给它修改的README 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849Pypi(the Python Package Index) sudo pip install colout or sudo easy_install colout Ubuntu 13.04's ppa sudo add-apt-repository ppa:ciici123/colout sudo apt-get update sudo apt-get/aptitude install colout Gentoo overlay 1. Install layman echo "app-portage/layman git" >> $EPREFIX/etc/portage/package.Use sudo emerge layman 2. Edit `$EPREFIX/etc/layman/layman.cfg`. Add a line after overlays : http://www.gentoo. ...
阅读全文 »

python的魔法二:开发的'坑'

发表于 2016-01-16 | 分类于 python | 阅读次数:
有了第一篇python的魔法(-)之基础知识,我们再来说说python开发中的坑 不要使用可变对象作为函数默认值1234567891011121314151617181920212223242526272829In [1]: def append_to_list(value, def_list=[]): ...: def_list.append(value) ...: return def_list ...: In [2]: my_list = append_to_list(1) In [3]: my_list Out[3]: [1] In [4]: my_other_list = append_to_list(2) In [5]: my_other_list Out[5]: [1, 2] # 看到了吧,其实我们本来只想生成[2] 但是却把第一次运行的效果页带了进来 In [6]: import time In [7]: def report_arg(my_default=time.time()): ...: print(my_default) ...: In [8]: report_arg() # 第一次执行 1399562371.32 In [9]: time.sleep(2) # 隔了2秒 In [10]: report_arg() 1399562371.32 # 时间竟然没有变 这2个例子说明了什么? 字典,集合,列表等等对象是不适合作为函数默认值的. 因为这个默认值实在函数建立的时候就生成了, 每次调用都是用了这个对象的”缓存”.我在上段时间的分享[python高级编程](http://dongwei ...
阅读全文 »

requests.exceptions.ConnectionError-Connection-aborted

发表于 2015-12-13 | 分类于 requests | 阅读次数:
###使用requests库抓取https的页面报如下错误: 12345678910 r = s.get(url=url, verify=False, headers=headers) File "/Users/higgs/.virtualenvs/spider/lib/python2.7/site-packages/requests/sessions.py", line 501, in get return self.request('GET', url, **kwargs) File "/Users/higgs/.virtualenvs/spider/lib/python2.7/site-packages/requests/sessions.py", line 488, in request resp = self.send(prep, **send_kwargs) File "/Users/higgs/.virtualenvs/spider/lib/python2.7/site-packages/requests/sessions.py", line 609, in send r = adapter.send(request, **kwargs) File "/Users/higgs/.virtualenvs/spider/lib/python2.7/site-packages/requests/adapters.py", line 473, in send raise ConnectionError(err, request=request)requests.exceptions.ConnectionError: ('Connection aborted.', error(54, 'Connection reset by pee ...
阅读全文 »

mysql创建数据库并指定编码

发表于 2015-12-06 | 分类于 mysql | 阅读次数:
mysql创建数据库并指定编码:123CREATE DATABASE `yourdb` CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; # 创建数据库并制定编码为utf8mb4(支持表情,扩展性好)GRANT ALL ON `yourdb`.* TO `username`@localhost IDENTIFIED BY 'password'; # 给用户授权FLUSH PRIVILEGES;
阅读全文 »

揭秘首位登月乘客日本富豪前泽友作,曾经放弃上大学

发表于 2015-09-18 | 分类于 新闻 | 阅读次数:
spaceX宣布首位登月乘客为前泽友作 9月18日,SpaceX公司CEO埃隆·马斯克宣布,该公司签署的首位环月飞行的私人客户是43岁前泽友作。他于2004年创立了在线时尚零售网站Zozotown。根据《福布斯》杂志估计,截至2017年5月,他的净资产为36亿美元,在日本富豪中排名第14位。艾隆·马斯克和前泽有作一同出席了发布会。马斯克表示,他不会披露前泽有作此程的费用,只表示BFR运载火箭的开发成本约为50亿美元。 前泽友作:前泽友作,1975年11月22日,出生于日本千叶县镰谷市(Kamagaya,Chiba)。他回忆幼年时说,本身从小对读书的兴趣不高,倒是很有生意头脑。小学时,最热衷的事情就是抓昆虫,最喜欢抓大甲虫,然后再卖给朋友。他说:“想想当时,自己就已从事买卖事业了。 该火箭长118米,分两部分,载重100吨,可循环使用。 之前有机构估算这趟旅程的价格为1.75亿美元。而去年,前泽友作购买让-米歇尔·巴斯奎特的一幅涂鸦《无题》,花了1.105亿美元。 前泽表示他可能会携带自己收藏的一些画作飞行。 宇宙飞船全长55米,内部空间高达1000立方米,超过了一些空间站,装有7个Raptor发动机。 虽然载人飞船内部自动化程度很高,但前沢友作会接受系统而严格的训练后,才能成行。 “地球是人类的摇篮,但人类不可能永远被束缚在摇篮里。” 发布会最后,马斯克引用火箭理论之父齐奥尔科夫斯基的名言说道。 前泽友作曾是一名摇滚歌手,后来创办了日本最大的潮牌电商网站。 据福布斯网站最新的数据,他的财富净值达27亿美元,在日本富豪榜上位居第18位,去年为14位。 前泽友作交往过一些著名的女星。曾与纱荣子公开恋情,目前正与26岁的刚力彩芽交往。 刚力彩芽说:“友作君啊,就像小孩子一样单纯……有些地方和我父亲很相像。我不知不觉就被他吸引住了。” 前泽有作的家位于东京,公司总部位于他的家乡千 ...
阅读全文 »
1…181920
Kevin Huang

Kevin Huang

197 日志
24 分类
84 标签
RSS
E-Mail
友情链接
  • 董伟明
  • FOOFISH
  • 酷壳
  • 知道创宇
  • 阮一峰
  • 求索
  • Sdandroid
  • 全栈实验室
© 2023 Kevin Huang 豫ICP备16018730号-1
本站访客数 人次 本站总访问量 次