13得票1回答
通过声明方式设置类的__name__属性

为什么不能直接覆盖类名声明,例如使用一个不是有效标识符的类名? 在IT技术中,有些语法规则需要遵守,类名作为标识符的一部分,必须符合标识符的命名规范。因此,不能直接使用非有效标识符作为类名。 >>> class Potato: ... __name__ = 'not...

11得票1回答
对象相等性 (`==`) 的默认行为在哪里定义?

根据 object.__eq__()文档,==的默认实现(即在 object 类中)如下: True if x is y else NotImplemented 仍然按照文档中NotImplemented的说明,我推断出NotImplemented意味着Python运行时将尝试以另一种方...

11得票2回答
应用于列表(数据结构)的乘法运算符

我正在阅读《像计算机科学家一样思考》这本书,它是一本介绍“Python编程”的入门教材。 我想澄清当应用于列表时乘法运算符(*)的行为。 考虑函数make_matrixdef make_matrix(rows, columns): """ >>&g...

10得票4回答
为什么Python没有 "__req__" (反射等式) 方法?

我有一个小帮手类: class AnyOf(object): def __init__(self, *args): self.elements = args def __eq__(self, other): return other in se...

10得票3回答
有没有办法区分一个函数对象是Lambda还是Def?

考虑下面这两个函数:def f1(): return "potato" f2 = lambda: "potato" f2.__name__ = f2.__qualname__ = "f2" 除了 introspecting 原始源代码之外,还有没有其他方法可以检测出 f1 是 def...

9得票3回答
在Python中获取对象的父命名空间?

在Python中,可以使用“.”来访问对象的字典项。例如: class test( object ) : def __init__( self ) : self.b = 1 def foo( self ) : pass obj = test() a = obj.foo...

8得票1回答
dict_values视图何时可以像集合一样(以及为什么)?

文档显示,值视图并非像set一样处理,但有时会这样处理。 >>> d = {1: 1} >>> d.values() | d.keys() {1} >>> d.values() & d.keys() {1} >>&...

7得票4回答
Python属性查找是否存在任何描述符魔法?

我已经开始在我编写的代码中更广泛地使用Python描述符协议。通常情况下,我想要发生的是默认的Python查找魔法,但有时我发现我想要获取描述符对象本身而不是其__get__方法的结果。想要知道描述符的类型,或者访问存储在描述符中的状态,或其他类似的东西。 我编写了下面的代码来遍历命名空间,...

7得票3回答
Python反射和类型转换

在Python中,str()、int()、float()等函数通常用于执行类型转换。但是,这需要在开发时知道要转换的类型。我正在尝试编写一些Python代码的子问题如下: 给定两个变量foo和bar,找到foo的类型。(因为这是通用代码,所以无法在开发时确定。)然后,尝试将bar转换为foo...