# 理解 Python 经典类与新式类
在 Python 中,类可以分为经典类(旧式类)和新式类。理解这两者的区别以及如何定义和使用它们是每个 Python 开发者的基本技能。本文将通过一个结构化的流程引导你了解并实现经典类与新式类。
## 教学流程
首先,让我们描述一下学习的过程。以下是学习经典类和新式类的步骤:
| 步骤 | 描述 |
|---|---|
| 1 | 理解经典类与新式类            
                
         
            
            
            
            查询匹配 广度查询 横着对每个类进行查询 深度查询 无视平级类,直接寻找下级类 #python 3.0 #新式类 广度查询 #经典类 广度查询 #python 2.0 #新式类 广度查询 #经典类 深度查询            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2017-11-11 16:48:00
                            
                                46阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            python中的类分为新式类和经典类,具体有什么区别呢?简单的说,1.新式类都从object继承,经典类不需要。Python 2.x中默认都是经典类,只有显式继承了object才是新式类Python 3.x中默认都是新式类,不必显式的继承object2.经典类继承深度优先,新式类继承广度优先。在多重继承关系下,子类的实例对象想要调用父类的方法,向上寻找时的顺序。3.新式类相同父类只执行一次构造函数,经典类重复执行多次。class A:   def __init__(self):            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-20 14:36:25
                            
                                498阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            经典类class A():    
    def __init__(self):        
    print 'this is a'&nbs            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2017-09-12 16:16:28
                            
                                795阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python 经典类,新式类从python2.2开始引入的新式类,在2.2以前类和类型是两个不同的概念,在这之后,类和类型得到了统一。对于统一以后,对于新式类H,那么H().__class__和type(H())返回的结果都是一样的,大家不妨可以试试,返回的结果都是<class '__main__.H'>  经典类:如果你的类没有继承其他任何父类,object将作为默认的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2014-04-10 01:54:13
                            
                                1539阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            从 Python2.2 开始,Python 引入了 new style class。虽然从使用上看,new style class 与 classic class 没有太大的差别, 但是在实现上, 两者有很大的区别。比如,下文所展示的基类搜索机制上的不同。#!/usr/bin/env python
""" classic class """
class CA():
    var = 'a'            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-08-30 11:41:10
                            
                                1168阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python中的新式类 vs 经典类            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-30 10:36:17
                            
                                201阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            类的分类 类和对象的方法一共分为四种:1.实例方法/对象方法只有实例化对象之后才可以使用的方法,该方法的第一个形参接收的一定是对象本身!2.绑定类的方法3.静态方法无需实例化,可以通过类直接调用的方法,方法中的参数既不接收对象名也不接受类。 一般方法可以独立调用,跟类中其他成员关联不大4.类方法无需实例化,可以通过类直接调用的方法
但是方法的第一个参数接收的一定是类本身,这种方法一般情况            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-01 22:27:26
                            
                                49阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            01版本支持 / 写法差异在Python 2.x 中如果你至今使用的还是 Python 2.x,那么你需要了解一下,在Python 2.x中存在着两种类:经典类和新式类。什么是经典类?# 不继承自objectclass Ming:      pass什么是新式类?# 显示继承objectclass Ming(object):      pass在Python 3.x 中如果你已经摒弃了Python            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2020-11-22 21:50:53
                            
                                338阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            首先了解一下什么是经典类,什么是新式类class Person: #经典类    passclass Person2(object):  #新式类    pass#类名首字母都大写#在python3里面经典类和新式类没有任何区别经典类与新式类在python3中是没有任何区别的,主要区别是在python2中多继承的时候。区别:经典类是:深度优先新式类是:广度优先在pyth...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-20 14:37:12
                            
                                273阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、新式类在 py3 里面的继承 object 的类,以及它的子类都是新式类多继承的情况下,会按照广度优先的方式查找为什么调用父类'''遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!'''class A:   # 默认继承 object类    def __init__(...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-20 14:40:30
                            
                                139阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            经典类VS新式类classperson(object):#这就是新式类pass#super(Teacher,self).__init__(name,age,sex)#新式类写法classPerson:#这就是经典类pass#School.__init__(self,name,age,sex)#经典类写法新式类(先从左往右找,B没有就找C,C没有就找A!这种查询叫广度查询,先查完B,C这一层,再去查            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2018-10-02 21:17:37
                            
                                492阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Python笔记001-类的特殊方法以下是我学习《流畅的Python》后的个人笔记,现在拿出来和大家共享,希望能帮到各位Python学习者。ID: TechDing,敬请关注。本篇主要知识点:类的特殊方法(一般都在前后带有两个下划线,比如__len__和__getitem__),其存在的目的是被Python解释器调用,而不是类的对象来调用。对于自定义的类,一般            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-14 12:58:28
                            
                                22阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ## Python中经典类和新式类的区别
### 简介
在Python中,经典类和新式类是两种不同的类定义方式。经典类是指在Python 2.x版本中使用的类定义方式,而新式类是在Python 3.x版本中引入的一种类定义方式。虽然在Python 3.x版本中默认使用新式类,但在Python 2.x版本中,经典类仍然存在,并且很多旧代码仍然使用经典类定义方式。
本文将介绍经典类和新式类的区别            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-09-14 08:19:35
                            
                                82阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1.经典类是直接声明的。使用dir()方法也可以看出新式类中定义很多新的属性和方法,而经典类就3个class A:    def __init__(self):        passdir(A)['__doc__', '__init__', '__module__']2.新式类是在创建的时候继承内置object对象(或者是从内置类型,如list,dict等)class B(obj...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-07-30 10:33:22
                            
                                357阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            #_*_coding:utf-8 _*_
#知识点:经典类和新式类的区别
#父类
class Father(object):
    def __init__(self):
        self.Fname = 'fffff            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2016-11-18 18:00:59
                            
                                1090阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            python2.X是经典类【旧式类】: 是以深度优先【】 但是在P            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-06-16 19:28:45
                            
                                90阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            继承作用:是减少代码。和现实中的继承一样自己什么也不用做,就可以继承父类的方法class People:    def __init__(self, name, age):        self.name = name        self.age = age    def eat(self):        print("%s is eating..." % self.na...            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2021-06-21 13:49:55
                            
                                435阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            新式类是为了统一**而在2.2中开始引入的。代码讲解上面的例子比较明白的说明了问题。B是定义的新式类。那么输入b的时候,不论是type(b),还是b.__class__都是输出的。A是定义的旧式类。-----------------------------------另外,新式类和旧式类还有一个区别...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2015-08-12 17:00:00
                            
                                82阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助!
 
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
 
废话不多说,开始今天的题目:
 
问:说说Python新式类和旧式类的区别?            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-08-11 13:04:02
                            
                                226阅读