做基因互作的网站,正规的营销型网站建设公司,北京网络职业技术学院官网,淘宝网站开发的多少钱前言
这篇文章属于类知识的最后一篇#xff0c;带一点点其他知识#xff0c;学习内容来自于Python crash course。 关注我私信发送Python crash course#xff0c;分享一份中文版PDF。
类的导入
在学习的时候#xff0c;包括之前#xff0c;我都是在一个文件中把所有代…前言
这篇文章属于类知识的最后一篇带一点点其他知识学习内容来自于Python crash course。 关注我私信发送Python crash course分享一份中文版PDF。
类的导入
在学习的时候包括之前我都是在一个文件中把所有代码都写上去包括定义不同的类定义函数实例化类等等都写一起。 实际上将过多的代码堆积在一个类上是非常不友好的编程习惯。我们应该合理的整理归纳我们定义的类以及实现功能的代码方便维护方便使用。 当类文件都不是同一个的时候我们怎么使用别的文件的类呢答案是使用导入。之前学习库的知识的时候了解到我们可以导入别人的库来实现自己功能。那么类是不是同样也可以导入。 很显然可以。
模块
什么是模块
模块是组织Python代码的方式之一它是一种将相关的函数、类和变量等封装在一个文件中的结构。模块文件以.py作为扩展名。 简单理解一下你创建一个.py文件这就是一个模块。 这里有两个py文件相当于两个模块。当然这个模块命名不是很好只是学习用没有很正式的命名。这两个模块实际上就是昨天的一个类的继承和类的组合的两个模块。
模块的好处
代码重用编写一次功能可以在多个地方通过导入模块来使用避免重复编写相同的代码。提高可维护性将功能分解到不同的模块中使得代码结构更清晰便于管理和维护。命名空间管理每个模块都有自己的命名空间可以减少全局变量冲突的问题。模块化编程有助于实现复杂系统的分层设计每个模块负责一部分功能易于理解和调试。
类的编码风格
导入类的时候由于库模块类可能是同一个英文单词所以编码的风格规范能够更好的帮助你导入类的语法。这里贴上学习数据中关于编码风格的内容。 类名应采用驼峰命名法 驼 即将类名中的每个单词的首字母都大写而不使用下划线。实例名和模块名都采用小写格式并在单词之间加上下划线。 对于每个类都应紧跟在类定义后面包含一个文档字符串。这种文档字符串简要地描述类的功能并遵循编写函数的文档字符串时采用的格式约定。每个模块也都应包含一个文 档字符串对其中的类可用于做什么进行描述。 可使用空行来组织代码但不要滥用。在类中可使用一个空行来分隔方法而在模块中可使用两个空行来分隔类。 需要同时导入标准库中的模块和你编写的模块时先编写导入标准库模块的import 语句再添加一个空行然后编写导入你自己编写的模块的import 语句。在包含多 条import 语句的程序中这种做法让人更容易明白程序使用的各个模块都来自何方。 编写代码
继续采用car的例子。这次稍微发散一点。现在有一个汽车工厂生产汽车流水线组装汽车。很明显我们不能把流水线的类和汽车零件的类放到一起。因为我们现在不是初学者必须学会模块化开发这两放一个模块明显就不合理。当然你可以把流水线和汽车的零件这些模块组合成一个汽车库内部实现组装汽车的功能然后让别人使用这个库去组装汽车。 这里我们简单的讲在流水线模块调用其他零件模块组装汽车简单粗暴就一个引擎哈。实现一个优秀的汽车工厂功能需要用到几种设计模式。Python的设计模式写出来我估计得花挺多时间还要查资料啥的而且这里重点讲的类的导入所以就简单意思一下。
首先编写一个Engine模块
我是先编写完了代码再开始写文章的文章实际上我的思路和编写过程。这里用的是一个Engine的父类然后简单写了两个类继承一个是Electric Engine一个是Internal Combustion Engine。内容也很简单哈大家自己写的时候尽量用上之前学的东西将知识连贯起来。
编写一个汽车工厂的模块
工厂模块编写的也很简单哈就一个名字一个模拟函数实际是打印输出。注意看函数的第二个参数和我的输出先记一下待会将为什么。
编写一个实现的模块
我创建了一个自己的工厂刚建出来pychram就说建不了pychram问我你哪里厂你就建。 这就是我们之前说的情况我用的类都在其他模块我怎么才能用上呢有好几个办法我们一个个讲。 导入单个类 语法 from module_name import class_name 介绍来自于某某模块导入某某类。大概就这个释义哈。 导入多个类 语法 from module_name import class_name_1,class_name_2... 和单个类的语法类似用逗号隔开多个即可。 敲重点 注意看car_factory中的create_car函数参数明明是engine为什么这里我使用了两个不是Engine的类也可以 回答多态。简单的理解就是多种形态。多态的含义大家往前看能看到我这边不写出来大家自己看的加深印象。 多态允许程序中的对象对同一消息作出不同响应具体响应取决于接收消息的对象的类型。 在代码中的ElectricEngine和InternalCombustionEngine两个类都是Engine类的子类而我们在函数中传递的就是Engine。 ElectricEngine和InternalCombustionEngine这两个是Engine吗是是特殊的Engine。 那是Engine是不是就可以作为create_car函数的参数进行传递了那么根据Engine在当前函数的状态就创建出了不同引擎的汽车。 大家好好理解一下可以查其他资料也可以自己写其他例子验证。 导入所有类 语法 from module_name import * 这里的*我个人理解是通配符表示所有。就想MySQL里面的select *。 大家可以看到我换成*后还创建出一个普通的Engine汽车。 导入整个模块 语法 import module_name import后直接就是模块名了就像之前我们导入库一下。 注意如果我们直接导入模块那么我们不能直接使用类名创建而是需要使用模块名.类型的方式指定类。
结尾
这篇文章主要讲Python中类的导入模块的知识导入类的多种方式这篇要学透因为实际写项目的时候用的很多导入自己的类和模块导入标准库的类和模块导入第三方库的类的和模块。通过导入现有的库完成项目能节省很多功夫。 今天的内容就到这里后面学习文件的操作。
点赞收藏关注不迷路加油
作业
根据自己前一天定义的类分模块化编写参考本文利用自己编写的模块实现某些功能。直接导入模块后为什么要使用模块名.类名方法