问题标签 [new-style-class]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3315 浏览

python - python中的类类型

为什么如果我这样做:

我得到了:<type 'instance'>,但如果我这样做:

我得到:<class '__main__.c'>

第一个不是很有用

0 投票
2 回答
513 浏览

python - Python new-style-class相关问题

我是一名 Python 学习者,目前正在破解一个具有可变数量字段的类,如此处的“命名材料束”示例中所示

我还想__setattr__在此类中编写一个以检查输入属性名称。但是,python 文档说,

如果 __setattr__() 想要分配给实例属性,它不应该简单地执行“self.name = value”——这会导致对自身的递归调用。相反,它应该在实例属性的字典中插入值,例如,“self.__dict__[name] = value”。对于新式类,它应该调用具有相同名称的基类方法,而不是访问实例字典,例如“object.__setattr__(self, name, value)”。

在那种情况下,我是否也应该object.__dict____init__函数中使用 replace self.__dict__

0 投票
2 回答
2319 浏览

python - __dict__.update() 是旧式的吗?

我对阅读新式与旧式属性的差异感到困惑。在这个例子中:

  1. 这段代码是否使用旧式方法来修改属性?

    Event()_self.__dict__.update(kw)

  2. 我使用 getattr、getattr还是getattribute

    为了Dispatcher.dispatch_to_parent()

代码来自http://www.pygame.org/wiki/CommandDispatch?parent=CookBook

0 投票
2 回答
497 浏览

python - 使用类实例作为类属性、描述符和属性

我最近说过尝试在 Python 中使用更新的类(从对象派生的类)。作为熟悉它们的练习,我试图定义一个具有许多类实例作为属性的类,每个类实例描述不同类型的数据,例如一维列表、二维数组、标量等。本质上,我希望能够写作

其中data_type是描述变量集合的类实例。下面是我第一次尝试实现这一点,只使用一个profiles_1d实例和相当通用的名称:

上面的代码是否大致是解决此问题的适当方法。我见过的例子property只是设置了一些变量的值。在这里,我需要我的 set 方法来初始化某个类的实例。如果没有,任何其他更好的方法来实现这一点的建议将不胜感激。

另外,我定义 set 方法的方式好吗?据我所知,通常 set 方法定义了用户键入时要执行的操作,在此示例中,

profiles_1d我可以用上面的代码正确设置实例属性的唯一方法是 type collection.set_profiles([...], y1=[...], ...),但我认为我不应该直接调用这个方法。理想情况下,我想输入collection.profiles = ([...], y1=[...], ...):这是正确/可能的吗?

最后,我看到一个关于新的类风格的装饰器被提到了很多,但我对此知之甚少。这里使用装饰器合适吗?对于这个问题,这是我应该了解的更多信息吗?

0 投票
3 回答
20002 浏览

python - 用super为多个父类调用init?

可能重复:
Super 可以处理多重继承吗?

Python继承?我有一个类结构(如下),并希望子类调用__init__父母双方的。这是否有可能以“超级”的方式进行,还是只是一个糟糕的主意?

0 投票
1 回答
3342 浏览

python - 为什么 Python 新式类中的 __new__ 不是类方法?

Python 2.2 的变更日志(引入了新式类)对__new__函数进行了以下说明:

__new__是静态方法,不是类方法。我最初认为它必须是一个类方法,这就是我添加classmethod原语的原因。不幸的是,对于类方法,向上调用在这种情况下无法正常工作,因此我不得不将其设为静态方法,并以显式类作为其第一个参数。

但是,我想不出为什么类方法不能用于此目的,而且它肯定会更好看。为什么最终没有__new__成为类方法?当 Guido 说“在这种情况下向上调用不起作用”时,他指的是什么?

0 投票
2 回答
23049 浏览

python - TypeError:调用元类基时出错,新式类不能只有经典基

类的集合定义为:

运行时,出现此错误:

我需要元类(我认为)在我的代码中具有 B 的已知字符串表示。这样做的原因是无关紧要的,但它将极大地帮助未来的更新。

因此,假设我需要 C 成为 B 的元类,而 B 将成为 A 的子类,有人可以告诉我这里出了什么问题以及如何更改我正在做的事情以消除错误吗?

0 投票
2 回答
2218 浏览

python - Python 的属性装饰器无法按预期工作

但它并没有像预期的那样打印“你越来越傻”,“你越来越傻了”,...... 不知道为什么。伙计们,你能帮我弄清楚吗?

提前致谢!

0 投票
2 回答
737 浏览

python - 旧式类、新式类和元类

object在 Python 2.x 中,所有新样式的类都隐式或显式继承自。然后看看这个:

这是否意味着A是新式班?但无论如何A都不会继承object,对吧?

好的,B是经典的课程,不是吗?

为什么是bothAB的实例object

如果B是 的一个实例object,那么type(B)不会是classobj,对吗?

0 投票
2 回答
331 浏览

python - 描述符和 python 提供的属性

我正在学习 Python,并且试图更好地理解描述符。当我查看这本 Python 在线书籍: http: //www.cafepy.com/article/python_attributes_and_methods/ch01s05.html时,它说:

  1. 如果 attrname 是 objectname 的特殊(即 Python 提供的)属性,则返回它。

我不明白 Python 提供的含义。有人可以给我一个 Python 提供的属性的示例,该属性优先于通常的解析顺序吗?

注意:我只对新式类感兴趣(据我所知,描述符甚至不适用于旧式)。