你见过哪些令你瞠目结舌的Python代码技巧?
创始人
2024-02-24 10:17:51
0

让我觉得瞠目结舌的要数这个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

代码跟踪

from macropy.tracing import macros, trace
with trace:sum = 0for i in range(0, 5):sum = sum + 5

输出:

sum = 0
for i in range(0, 5):
sum = sum + 5
range(0, 5) -> [0, 1, 2, 3, 4]
sum = sum + 5
sum + 5 -> 5
sum = sum + 5
sum + 5 -> 10
sum = sum + 5
sum + 5 -> 15
sum = sum + 5
sum + 5 -> 20
sum = sum + 5
sum + 5 -> 25

用个contextmanager就把block里的代码执行过程输出了

尾递归优化

from macropy.experimental.tco import macros, tco@tco
def fact(n, acc=0):if n == 0:return accelse:return fact(n-1, n * acc)print fact(10000)  # doesn't stack overflow
# 28462596809170545189064132121198688901...

模仿LINQ的PINQ

print sql[(x.name for x in db.countryif x.gnp / x.population > (y.gnp / y.population for y in db.countryif y.name == 'United Kingdom').as_scalar()if (x.continent == 'Europe')
)]

输出:

SELECT country_1.name
FROM country AS country_1
WHERE country_1.gnp / country_1.population > (SELECT country_2.gnp / country_2.population AS anon_1
FROM country AS country_2
WHERE country_2.name = ?) AND country_1.continent = ?

相关内容

热门资讯

学习贯彻党的二十届四中全会精神... 本报讯 (记者庞慧敏)“工资必须按月足额支付给农民工,任何单位和个人都不得拖欠。”这是广西壮族自治区...
房山综治中心调解超龄劳动者工伤... 新京报讯(记者张静姝)近日,北京市房山区综治中心丁俊宏调解工作室团队成功调解一起超龄劳动者工伤纠纷,...
海南自贸港正式封关 “零关税”... 12月18日,海南自贸港全岛封关运作正式启动。在封关前半个月,《新闻调查》栏目组赴海南拍摄记录,详细...
湖南大学法学院党委书记李劲松到... 2025年12月19日下午,湖南大学长沙校友会“法商共创探讨沙龙”在湖南芙蓉律师事务所44楼大会议室...
从法律咨询到健康关怀:长沙市律... 2025年12月16日至19日,湖南省中医附一医院的高级康复理疗师在湖南芙蓉律师事务所,开展了一场为...
新闻调查丨海南自贸港正式封关 ... 12月18日,海南自贸港全岛封关运作正式启动。在封关前半个月,《新闻调查》栏目组赴海南拍摄记录,详细...
具身智能迎来政策“红利期”,灵... 一台身形庞大的机器人,却拥有一双灵巧的“手”。它可以根据任务指令,用五根手指灵活地拿取物品,精准避障...
明年,山西省将实现政策范围内住... 12月19日,山西省医保局发布消息,我省通过提高保障水平、优化经办服务,切实减轻参保职工生育医疗负担...
南通市海门区:“三及时”制度助... “一名机关干部因房屋漏水与邻里产生矛盾,社区监督员第一时间反馈后,镇上组织部门迅速介入提醒该干部并协...
涉外企业跨境金融服务政策宣讲会... 本报讯(记者 安欣欣)12月19日,由郑州市委金融委员会办公室、中国人民银行河南省分行联合举办的涉外...