• Python中的类(一)


    Python中的类(一)

    一、 应用场景

    如果多个函数中有一些相同的参数时,转换成面向对象。

    二、 如何创建类

    类是用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

    Class 类名:

           Pass

    三、 类变量

    类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

    四、 创建类中的方法

    方法是类中定义的函数。

    1、普通法

    Obj = 类名 ()

    Obj . 普通方法名

    2、设定初始化(构造方法、封装特性)

    由于类可以起到模板的作用,因此,可以在创建实例的时候,把一些我们认为必须绑定的属性强制填写进去。通过定义一个特殊的__init__方法,在创建实例的时候,就把name,score等属性绑上去:

    class Student(object):

        def __init__(self, name, score):

            self.name = name

            self.score = score

     注意:特殊方法“init”前后有两个下划线!!!

    注意到__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性绑定到self,因为self就指向创建的实例本身。

    有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去:

    >>> bart = Student('Bart Simpson', 59)

    >>> bart.name

    'Bart Simpson'

    >>> bart.score

    59

    和普通的函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别,所以,你仍然可以用默认参数、可变参数、关键字参数和命名关键字参数。

    五、继承特性

     继承是为了使用父类中的方法。

    创建实例:

    class Father():             #父类

              def f1(self):

                     print (‘父法一’)

    class Son(Father):             #子类

              def s1(self):

                     print(‘子法一’)

    调用:

    • obj=Son()
    • obj.s1()
    • obj.f1()

    #执行结果:子法一

                        父法一

    当子类中的方法名和父类的方法名一致时(重写父类的某方法),调用该方法时,执行的是子类中的方法。重写时,还想要执行父类的方法时可以参照以下方法。

    class Father():             #父类

              def f1(self):

                     print (‘父法一’)

    class Son(Father):             #子类

              def s1(self):

                     super(Son,self).f1           #参数:子类名,self

                     print(‘子法一’)

    #调用

    • obj=Son()
    • obj.s1()

    #执行结果:父法一

                        子法一

    也可以按照以下方法写:

    class Father():             #父类

              def f1(self):

                     print (‘父法一’)

    class Son(Father):             #子类

              def s1(self):

                     Father.f1(self)

                     print(‘子法一’)

    #调用

    • obj=Son()
    • obj.s1()

    多继承:

    当需要一个子类继承多个父类时,可以参照以下代码:

    class Father1():           #父类一

              def f1(self):

                     print (‘父类一’)

    class Father2():           #父类二

              def f2(self):

                     print (‘父类二’)

    class Son(Father1,Father2):              #子类

              def s1(self):

                                print(‘子法一’)

    继承父类的顺序是从左到右继承。即,当继承的多个父类中有相同名称的方法,在调用时会执行左侧父类的方法,而右侧父类的方法则不会执行。这与执行顺序有关。当调用子类时,程序会先从子类的方法中匹配,如果子类中没有则去符类中依次匹配,父类的匹配顺序是从左到右。

    当多父类继承共同继承一个祖先类,而调用的方法在祖先类时,的查找调用顺序如下图。

    当调用父类的方法中又调用了其他方法,则会从子类开始匹配查找该方法。即使,原先的父类中有该方法,也会从子类查找。

  • 相关阅读:
    试试主题显示
    四则运算
    实验四 决策树算法及应用
    实验三 朴素贝叶斯算法及应用
    实验二 K-近邻算法及应用
    实验一 感知器及其应用
    实验三 面向对象分析与设计
    实验二 结构化分析与设计
    实验一 软件开发文档与工具的安装与使用
    举例分析流程图与活动图的区别与联系
  • 原文地址:https://www.cnblogs.com/xshan/p/8470538.html
Copyright © 2020-2023  润新知