


The difference between python new-style classes and old-style classes
Python’s new-style classes were introduced in version 2.2. We can call the previous classes classic classes or old-style classes.
Why is new style class introduced in 2.2? The official explanation is:
To unify classes and types.
Before 2.2, for example, in version 2.1, classes and types were different. If a is an instance of ClassA, then a.__class__ returns ‘class __main__.ClassA‘, and type(a) returns always
After introducing new classes, there are other benefits, such as more built-in properties will be introduced, descriptors can be introduced, properties can be calculated, etc.
For forward compatibility, user-defined classes are classic classes by default. New classes need to inherit from the base class object of all classes or a new class that inherits from object.
It is worth noting that although you are using the latest python (2.7), some features will not work on old-style classes.
So, in order to ensure that you are using new-style classes, there are two methods:
1. Metaclass, add the following code at the front of the class module code __metaclass__ = classname (a custom new-style class).
2. Classes inherit directly or indirectly from the built-in class object.
If you don’t need to be compatible with old-style classes and old versions of classes, then keep them all new-style classes.
In Python3, these problems no longer exist, because all classes are subclasses of the object class (implicitly).
Code example:
class oldClass: #经典类 def __init__( self ): pass class newClass(object): #新类 def __init__( self ): pass c1 = oldClass() c2 = newClass() c1.__class__ # 输出-> <class __main__.oldClass at 0x0137BF10> type(c1) # 输出-> <type 'instance'> c2.__class__ # 输出-><class '__main__.newClass'> type(c2) # 输出-><class '__main__.newClass'>

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

How to avoid being detected when using FiddlerEverywhere for man-in-the-middle readings When you use FiddlerEverywhere...

Fastapi ...

Using python in Linux terminal...

How to teach computer novice programming basics within 10 hours? If you only have 10 hours to teach computer novice some programming knowledge, what would you choose to teach...

About Pythonasyncio...

Understanding the anti-crawling strategy of Investing.com Many people often try to crawl news data from Investing.com (https://cn.investing.com/news/latest-news)...

Loading pickle file in Python 3.6 environment error: ModuleNotFoundError:Nomodulenamed...

Discussion on the reasons why pipeline files cannot be written when using Scapy crawlers When learning and using Scapy crawlers for persistent data storage, you may encounter pipeline files...
