new-style-class相关内容

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

所有的 Python 内置函数都是 object 的子类,我也遇到过很多用户定义的类.为什么?object 类的目的是什么?这只是一个空类,对吗? 解决方案 简而言之,它释放了魔法小马. 总而言之,Python 2.2 及更早版本使用“旧式类".它们是类的特定实现,并且有一些限制(例如,您不能对内置类型进行子类化).解决这个问题的方法是创建一种新的类样式.但是,这样做会涉及一些向后不 ..
发布时间:2021-12-11 19:32:44 Python

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

Python 中的旧式和新式类有什么区别?我什么时候应该使用其中一种? 解决方案 来自 新式和经典类: 在 Python 2.1 之前,旧式类是用户唯一可用的风格. (旧式)类的概念与类型的概念无关:如果 x 是旧式类的实例,则 x.__class__指定x的类,但type(x)总是. 这反映了所有旧式实例,独立于他们的类是用单一的内置类型实现的,称为实例. 在 P ..
发布时间:2021-11-30 23:25:21 Python

如何检查对象是否是新式用户定义类的实例?

代码: 导入类型C类(对象):经过c = C()打印(isinstance(c,types.InstanceType)) 输出: 假 检查对象是否是新样式类的用户定义类的实例的正确方法是什么? 更新: 我想进一步强调是否检查对象类型是否用户定义.根据文档: types.InstanceType 用户定义类的实例类型. UPD2: 好吧 - 不是“正确"的方法 ..
发布时间:2021-06-26 20:35:36 Python

type(obj) 和 obj.__class__ 的区别

type(obj) 和 obj.__class__ 有什么区别?有没有可能 type(obj) is not obj.__class__? 我想编写一个对提供的对象通用的函数,使用与另一个参数相同类型的默认值 1.下面的#1 或#2 哪个变体会做正确的事情? def f(a, b=None):如果 b 是 None:b = type(a)(1) # #1b = a.__class__(1) ..
发布时间:2021-06-25 19:36:00 Python

Python 2.7中的旧式和新式类

可能重复: Python中的旧样式和新样式类 Python 2.7中新样式和旧样式类的当前状态是什么? 我不经常使用Python,但是我隐约记得这个问题。该文档似乎根本没有提到这个问题: Python教程:类。我还需要为此担心吗?通常,我应该像下面这样声明我的课程吗? class MyClass: 通过 还是? 类MyClass(对象): 通过 ..
发布时间:2020-10-01 23:23:47 Python

将类“对象"分类为子类的目的是什么?在Python中?

所有Python内置都是object的子类,我也遇到了许多用户定义的类.为什么?类object的目的是什么?这只是一个空的课,对吧? 解决方案 简而言之,它设置了免费的魔法小马. 长期以来,Python 2.2和更早版本使用“旧样式类".它们是类的特定实现,并且有一些限制(例如,您不能对内置类型进行子类化).解决此问题的方法是创建一种新的类样式.但是,这样做将涉及一些向后不兼容的更改 ..
发布时间:2020-07-31 01:33:18 Python

为什么python new样式类中的__new__不是类方法?

Python 2.2的Changelog(引入了新式类)对__new__函数说了以下内容: __new__是静态方法,不是类方法.我最初以为它必须是一个类方法,这就是为什么我添加了classmethod原语的原因.不幸的是,在使用类方法的情况下,向上调用在这种情况下无法正常工作,因此我必须使其成为一个以显式类作为第一个参数的静态方法. 但是,我无法想到为什么类方法不能用于此目的,并且看 ..
发布时间:2020-04-27 04:12:23 Python

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

我可以强制父类调用派生类的函数版本吗? class Base(object): attr1 ='' attr2 ='' def虚拟(自我): pass#在父类中没有做任何事情 def func(self): print“%s,%s”%(self.attr1,self.attr2) self.virtual() 以及从中派生的类 class派生 ..
发布时间:2018-08-03 16:05:05 Python

旧式和新式的Python 2.7?

可能重复: Python 2.7中的新式和旧式类的当前状态是什么?我不经常使用Python,但我模糊地记住了这个问题。文档似乎没有提到这个问题: Python教程:类。我还需要担心这个吗?一般来说,我应该声明我的类如下: class MyClass: pass 或? class MyClass ): pass 解决方案 “。这些是新式 ..
发布时间:2016-11-23 14:20:13 Python

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

Python中的旧样式和新样式类有什么区别?现在是否有理由使用旧式类? 解决方案 从 http://docs.python.org/2/reference/datamodel.html#new- style-and-classic-classes : 对于Python 2.1,旧样式类是唯一可用于用户。 (旧式)类的概念与类型的概念无关:如果 x 是旧式类的实例,则 x .__ cl ..
发布时间:2016-11-23 10:12:13 Python

为什么PyCXX以它的方式处理新式类?

我选择了一些C ++ Python包装器代码,允许消费者从C ++中构造自定义旧样式和新样式的Python类。 原始代码来自 PyCXX ,包含旧样式类和新样式类此处和这里。我已经重写了代码实质上,在这个问题,我将引用我自己的代码,因为它允许我以最清晰的方式呈现我的情况。我认为很少有人能够理解原来的代码,没有几天的审查...对我来说,它花了几个星期,我还不清楚。 旧样式仅来源于PyOb ..
发布时间:2016-10-20 23:54:03 C/C++开发