青少年python系列 43.导入类

青少年python系列目录_老程序员115的博客-CSDN博客

青少年python教学视频ppt源码

         随着不断地给类添加功能,程序文件可能变得很长、很复杂,即便我们妥善地使用了继承这一特性后也是如此。为遵循Python编程的总体设计理念,应让文件尽可能整洁。为在这方面提供帮助,Python编程允许你把一个个的类,存储、封装在模块中,然后在主程序中导入这个所需的模块,来对类进行使用。

        这样做的好处是方便我们对过多的类进行整理,避免类过多而产生混乱。我们可以把功能上相互联系或相近类储存在同一个模块文件中,这会大大简化我们的代码结构,避免代码过于冗长。

1 导入单个类

        在上节课中,如果我们想子类继承父类,父类与子类必须存在于同一个文件中,如果父类与子类所包含的功能很多,这就会让我们的代码极其冗长。并且每使用一次,我们就需要重写一遍子类与父类,效率很是低下。

        而导入类这种程序编写方式会大大简化这种代码结构。

        我们首先创建一个模块文件car.py,并在其中导入上节课的Car类,并将其保存,在我们写其他类或者是Car类的子类时,我们就可以使用这个模块在另一个文件中创建实例对象或者继承。

青少年python系列 43.导入类_第1张图片

        import语句让Python打开了模块文件car,并导入其中的Car类。这样我们就可以使用Car类了,导入的过程就像是Car类在这个文件中定义的一样。程序运行后,输出与我们在前面看到的一样结果。

         导入类是一种有效的编程方式。如果在这个car_test程序中包含了整个Car类的程序,就会使得程序代码格外的冗长;但如果通过将这个类移到一个模块中,并导入该模块,你依然可以使用其所有功能,而整个主程序文件变得整洁、易于阅读了。这还能让我们将大部分逻辑存储在一个相对独立的Python文件中,我们就可以不管这些文件,而专注于主程序的高级逻辑代码编写、设计。

2 存储多个类

        虽然在同一个模块中的类之间,应存在某种相关性,但我们可根据需要,在一个模块中存储任意多个数量的类。ElectricCar类也可帮助模拟汽车模型,因此下面我们将ElectricCar类也加入模块car.py中。

        在存储完ElectricCar类后,我们就可以在其他文件中通过导入来使用它:

青少年python系列 43.导入类_第2张图片

        通过这样的方式,我们可以在模块文件中封装大量的类,使用这些模块的人不需要了解里面封装的具体内容,只需要了解大概的功能直接调用即可,就像我们购买并使用手机一样,我们不需要了解其内部的工作原理与机制,只需要开机使用即可。这样进行类的存储与封装,会大大加快我们在现实编程中开发软件与程序的速度,会形成一个累积效应,使得前人的工作成果得以保留,且可以加以使用。

3 导入多个类

        在实际编程中,我们可根据需要,在程序文件中导入任意数量的类。如果我们要在同一个程序中同时创建普通汽车和电动汽车实例对象,那么我们就可以将Car和ElectricCar类同时导入在主程序文件。

青少年python系列 43.导入类_第3张图片

        我们从一个模块中导入多个类时,用逗号分隔了各个类。导入必要的类后,就可根据需要创建每个类的任意数量的实例对象。

        我们还可以导入整个模块,再使用句点表示法来访问你需要的类。由于创建类实例的代码都包含模块名,因此不会与当前文件使用的任何名称发生冲突。这种使用句点法来访问需要的类方式,是最为安全的一种方式。

青少年python系列 43.导入类_第4张图片

        我们使用了句点的方式来创建两个实例对象。可以看到,使用句点方式来创建实例对象所使用的语法格式为:module_name.class_name(模块名称.类名称),在访问需要的类并创建了实例对象后,使用实例对象来对属性、方法函数的操作都是一样的。

其实我们还可以导入模块中的所有类

from car import *

        但在实际操作中我们一般不推荐使用这种导入方式,其原因有两点。

        一、在上面两种导入方式中只要看一下文件开头的import语句,就能清楚地知道程序使用了哪些类,会是非常清晰明了、准确无误的;但这种导入方式没有明确地指出我们使用了模块中的哪些类。

        二、这种导入方式还可能引发名称命名方面的风险。如果我们不小心导入了一个与程序文件中其他东西同名的类,可能会引发难以判断的错误。

        当我们需要从一个模块中导入很多类时,最好导入整个模块,然后使用句点表明类的来源,使用module_name.class_name语法的方式来访问类。这样做时,虽然在程序文件前几行开头,并没有列出用到的所有类,但我们清楚地知道在程序的哪些地方使用了导入的模块,而且也避免了导入模块中的每个类可能引发的名称冲突。

总结

1、导入单个类

        通过将一个类移到一个模块中,并导入该模块,依然可以使用其所有功能,整个主程序文件变得整洁、易于阅读。

2、储存多个类

        虽然在同一个模块中的类之间,应存在某种相关性,但我们可根据需要,在一个模块中存储任意多个数量的类。

3、导入多个类

        ①从一个模块中导入多个类时,用逗号分隔了各个类。

        ②导入整个模块再使用句点方式:module_name.class_name(模块名称.类名称),访问需要的类并创建了实例对象。

你可能感兴趣的:(python,python,蓝桥杯,青少年编程,开发语言,python考级)