3390得票34回答
“Least Astonishment”和可变的默认参数

任何长时间涉足Python的人都会被以下问题所困扰(或撕成碎片): def foo(a=[]): a.append(5) return a Python的初学者可能会期望这个函数在没有参数的情况下总是返回一个只有一个元素的列表:[5]。但实际结果却非常不同,对于初学者来说...

34得票3回答
为什么负数ID或零被视为不良实践?

为什么在数据库表中插入主键时,负 id 或零被认为是不良实践? 我认为在某些情况下这可能有用,但是人们说它不被推荐,尽管他们从来没有说过 / 知道为什么。 因此,我想知道有没有什么限制或问题,或者是否只是约定俗成。如果确实有一些限制,为什么没有阻止该功能?

12得票5回答
Python中的“布尔”操作(即and/or运算符)

这个方法搜索第一个单词字符组(即:[a-zA-Z0-9_]),返回第一个匹配的组,如果失败则返回None。def test(str): m = re.search(r'(\w+)', str) if m: return m.group(1) return...

7得票2回答
允许在Python属性中使用特殊字符的原因

我有些偶然地发现,您可以使用setattr为对象设置“非法”属性。所谓“非法”,是指无法使用传统的 . 操作符引用中的__getattr__接口检索名称的属性。它们只能通过 getattr 方法检索。 对我来说,这似乎相当惊人,我想知道是否有原因,或者是否只是被忽视了等等。由于存在用于检索属...

7得票1回答
使用FieldInfo.SetValue将值类型设置为null不应该失败吗?

(与PropertyInfo SetValue和nulls相关) 如果我有public class Thing { public int X; },一个Thing o,以及指向X字段的FieldInfo fi,为什么调用fi.SetValue(o, null)是合法的呢?运行时将字段X设置为...