问题标签 [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 投票
8 回答
254825 浏览

Python中的旧样式类和新样式类有什么区别?

Python中的旧样式类和新样式类有什么区别?我什么时候应该使用其中一种?

0 投票
4 回答
81315 浏览

为什么 Python 中的 @foo.setter 对我不起作用?

所以,我在 Python 2.6 中使用装饰器,但在让它们工作时遇到了一些麻烦。这是我的类文件:

我认为这意味着将其视为x属性,但在 get 和 set 上调用这些函数。所以,我启动了 IDLE 并检查了它:

显然,第一次调用按预期工作,因为我调用了 getter,并且没有默认值,它失败了。好的,好的,我明白了。但是,对 assign 的调用t.x = 5似乎创建了一个新属性x,现在 getter 不起作用!

我错过了什么?

0 投票
3 回答
11687 浏览

type(obj) 和 obj.__class__ 的区别

type(obj)和 和有什么不一样obj.__class__?有没有可能type(obj) is not obj.__class__

我想编写一个在提供的对象上通用的函数,使用与另一个参数相同类型的默认值 1。下面的#1 或#2 哪个变体会做正确的事情?

0 投票
2 回答
1175 浏览

Python 对象@property

我正在尝试创建一个点类,它定义了一个名为“坐标”的属性。但是,它的行为不像我期望的那样,我不知道为什么。

似乎 px 和 py 出于某种原因没有设置,即使设置器“应该”设置这些值。有人知道这是为什么吗?

0 投票
1 回答
2882 浏览

如何从 __init__ 调用属性设置器

我有以下python代码块:

理论上这应该打印出密码的 SHA1,但是从构造函数设置 self.password 会忽略定义的属性,只是将值设置为“password1”。然后 print 语句读取“password1”的值。

我知道这是在类上定义密码而不是在实例上定义的密码,但我不确定如何正确表示它以便它工作。任何帮助,将不胜感激。

0 投票
3 回答
2194 浏览

获取没有特殊属性的类对象__dict__

为了获取所有已定义的类属性,我尝试使用

但这也给了我特殊的属性。有没有办法只获取自定义属性,还是我必须自己“清理”字典?

0 投票
3 回答
477 浏览

使 super() 在 Python 的 urllib2.Request 中工作

今天下午我花了几个小时试图在我的自定义扩展中找到一个错误urllib2.Request。问题是,正如我发现的那样,使用super(ExtendedRequest, self), 因为urllib2.Request(我在 Python 2.5 上)仍然是一个旧样式类,super()无法使用。

创建具有这两个功能的新类的最明显方法,

不起作用。调用它,我留下了AttributeError: typeraise by urllib2.Request.__getattr__()。现在,在我开始并从 /usr/lib/python 复制整个urllib2.Request类之前,将其重写为

有谁知道,我怎样才能以更优雅的方式实现这一目标?(是有一个基于工作支持的新型类。)urllib2.Requestsuper()

编辑:顺便说一句:提到的 AttributeError :

0 投票
2 回答
11137 浏览

Python在父类中使用派生类的方法?

我可以强制父类调用派生类的函数版本吗?

以及派生自它的类

清除模糊性:

0 投票
6 回答
17671 浏览

在 Python 中对类“对象”进行子类化的目的是什么?

所有 Python 内置程序都是子类,object我也遇到了许多用户定义的类。为什么?上课的目的是什么object?这只是一个空班,对吧?

0 投票
3 回答
4890 浏览

Python:总是使用 __new__ 而不是 __init__?

我了解两者__init____new__工作方式。我想知道是否有什么__init__可以做__new__而不能做的事情?

即可以使用__init__以下模式替换:

我问是因为我想让 Python OO 的这一方面更适合我的脑海。