青少年python系列 43.导入类
创始人
2024-04-07 07:11:47
0

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

青少年python教学视频ppt源码

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

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

1 导入单个类

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

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

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

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

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

2 存储多个类

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

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

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

3 导入多个类

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

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

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

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

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

from car import *

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

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

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

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

总结

1、导入单个类

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

2、储存多个类

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

3、导入多个类

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

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

相关内容

热门资讯

恒誉环保(688309)披露关... 截至2025年12月29日收盘,恒誉环保(688309)报收于23.88元,较前一交易日上涨2.58...
一场精准的“政策捕捉” 传鼎晖... 观点网 上海苏州河畔,一幢服务式公寓悄然易主,掀开了住房租赁行业生存逻辑变革的一角。 最新消息显示,...
从制度协同到产业共振 中越合作... [ 完善“边境口岸+产业园区”联动模式,将云南221.4亿元对越贸易额的增长势能延伸至内陆,形成“边...
武进不锈(603878)披露拟... 截至2025年12月29日收盘,武进不锈(603878)报收于10.16元,较前一交易日上涨2.21...
*ST熊猫因涉嫌违反证券法律法... 证券之星消息,12月30日*ST熊猫公开信息显示,熊猫金控股份有限公司因涉嫌违反证券法律法规,信息披...
7岁男孩偷吃邻居“变态辣”外卖... 七岁男孩小雨在小区玩耍时,发现邻居小张家门口的未拆外卖无人看管,便偷偷取走食用。此前小张多次遭遇外卖...
锂矿龙头,涉嫌内幕交易罪单位犯... 12月29日晚,锂矿龙头赣锋锂业发布公告称,公司于12月29日收到宜春市公安局的移送起诉告知书,因涉...
中国铀业聘任张仲斌为总法律顾问... 12月29日,中国铀业(001280)发布公告,王辉因工作安排原因辞去公司总法律顾问职务,辞任后仍担...
[视频]形势政策系列报告会第四... 央视网消息(新闻联播):形势政策系列报告会第四场报告会今天(12月29日)在北京举行。商务部党组书记...
联众(06899.HK)就前执... 格隆汇12月29日丨联众(06899.HK)公告,针对公司前执行董事兼前行政总裁伍国梁在其任职期间于...