V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  featureoverload  ›  全部回复第 2 页 / 共 2 页
回复总数  26
1  2  
2022-06-21 14:53:28 +08:00
回复了 Richard14 创建的主题 Python Python 日志输出异常的正确姿势?
@Morriaty logger.error(msg, exc_info=True) / logging.error(msg, exc_info=True)
2021-11-09 15:50:08 +08:00
回复了 featureoverload 创建的主题 Python scrapy 部署之后是怎么和后台管理传递信息的?
@Kobayashi 嗯,是有一个 logparser 库的东西。

不过还想了解除了 log 含有的信息之外,还有没有其它消息传递。
2021-10-13 15:31:01 +08:00
回复了 MiketsuSmasher 创建的主题 Python Python 类方法的装饰器问题
@2i2Re2PLMaDnghL 正解。

原贴的装饰器写法完全是错的。

你的第一个 solution 不是一种正常的写法;只有某种极为特殊的情况才有可能不得不这么写。
2021-10-12 21:51:05 +08:00
回复了 shyrock 创建的主题 Python 阅读 Python 代码的困难
1. 虽然很高级的工程师(对程序理解很深)并不需要很多 type hints ;但 type hints 确实有是要比没有好得多的。

2. Python 可以用很短的代码表达很多的内容(知识)。所以有些代码不具备相关知识自然是看不懂的。

比如,没有掌握递归知识的初学者,看递归函数是很难理解的:

def fib(n):
....if n < 0:
........raise ValueError("can't be negative")
....elif n <= 1:
........return n
....return fib(n-2) + fib(n-1)

(递归不是“内容很多”的知识,所以其它语言也可以用很短的代码实现,这里是强调掌握不掌握这个知识对代码理解的帮助问题)

比如如果没有了解数据结构的特点和一点训练,是很难看懂这段代码:

def find_duplicates(list_):
....existed, duplicate = set(), set()
....for item in list_:
........if item in existed:
............duplicate.add(item)
........else:
............existed.add(item)
....return duplicate

duplicates = find_duplicates(values)


有些疯狂的孩子甚至可以去掉上面这个函数,"一行"得到结果(为了方便阅读,我把调用函数的参数换行):

duplicates = reduce(
....lambda case, item: (case[item in case[False]].add(item), case)[-1],
....values,
,,,,{True: set(), False: set()}
)[True]

所以,要说不好读,确实很多情况都会不好读。
这取决与每个人对软件的理解程度。
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5331 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 15ms · UTC 01:31 · PVG 09:31 · LAX 17:31 · JFK 20:31
Developed with CodeLauncher
♥ Do have faith in what you're doing.