吉吉影音欧美性爱
game show 娱乐中文网
你的位置:吉吉影音欧美性爱 > 娱乐中文网 > 高中 自慰 Python之模块和包:一切皆对象,模块和包也不例外
高中 自慰 Python之模块和包:一切皆对象,模块和包也不例外

2024-08-26 19:19    点击次数:106


  

高中 自慰 Python之模块和包:一切皆对象,模块和包也不例外

小引高中 自慰

自拍视频

在前边的著作中,咱们先容了变量、函数、类,在实质编程中,遥远在贯彻的有两点:

1、在Python中一切皆对象,是以函数、类、模块、包也都是一等公民。

2、非论是基于面向经过如故面向对象,咱们在实质编程中所辩论的都是若何提高代码的复用性,以及如何愈加便于膨胀。

从变量,到函数,再到类,代码的服用层级是在不停升迁的。从本文启动要先容的模块和包是更高层级的代码的组织与复用体式。

本文会愈加偏向于编程的念念维及成见,主要内容大要如下:1、模块化念念想

2、Python中的模块和包

3、模块和包亦然对象

模块化念念想

其实模块化的念念想由来已久,从工业转换、社会化大单干启动,就还是在期骗模块化念念想。

早期的工场主、成本族,惦记工东说念主掌合手一皆时代,选拔单干的口头,让每个工东说念主折柳认真一部单干序或者部分零件的出产,终末进行拼装。如斯一来,每个工东说念主大约愈加专注于特定的任务,从而提高了举座的效果。

单干配合有两个副家具,一个是出产出了可复用的模块,另一个便是模块化循序在工程中的鄙俚期骗,虽然也包括计算机科学。

每个零部件不在邃密耦合于特定机器,零件是愈加高内聚和低耦合的,从而提高了复用的可能。

而所谓的模块化循序的中枢便是:问题分析、模块已矣、模块集成,似乎恰是脱胎于社会化的单干配合。

回到咱们的主题Python编程上,在编程中的模块化念念想,将代码的复用,不单是局限于某个技俩里面。联想、已矣广泛的模块,更不错期骗于后续新的技俩中,从而更猛进度地升迁项目的树立效果。

是以,模块和包,更要害的在于对这种复用念念想的清爽与践行,实质使用起来高中 自慰,并不复杂。

Python中的模块和包

具体到Python中,其实咱们在前边的著作中,还是在反复使用模块了。Python中任何一个Python源文献(.py),都不错是一个模块,都不错算作模块来使用。

在一个Python模块中,不错界说变量、函数、类,也不错导入其他模块。

而Python中的包,不错简陋清爽为包含一个或者多个模块的目次/文献夹。

是以,不错这么简约的清爽为,Python中的模块不错等同为一个Python源文献,Python中的包,不错是包含Python源文献的文献夹。

如故以打工东说念主举个例子,此次选拔模块化的念念想,将围绕打工东说念主的功能放到一个Python文献中,算作一个颓败的模块;然后将使用打工东说念主功能的代码放到另一个算作进口文献的Python文献中。

模块代码:dagongren.py

classDaGongRen:def__init__(self, name, salary=3000): self.name = name self.salary = salarydefwork(self): print(f"打工东说念主{self.name}[薪水: {self.salary}]在勤快使命")defjiaxin(team):for dgr in team: dgr.salary = round(dgr.salary * 1.1)print("这是在模块[dagongren]中")

进口文献:main.py

from dagongren import DaGongRen, jiaxinprint('这是在进口文献中')zs = DaGongRen('张三')ls = DaGongRen('李四', 4000)zs.work()ls.work()print('涨薪后')jiaxin([zs, ls])zs.work()ls.work()

推论终结:

推论终结中,不错看到在模块dagongren通过import导入时,其中的print()语句也被推论了,然后才是推论main.py中的语句。

推论完成后,会发当代码目次中多了一个__pycache__的目次:

这个目次,咱们之前检察字节码时也简陋过的,当使用import语句导入模块时,Python证据器会觉得模块可能被重迭使用,为了提供运行的效果,会将模块代码编译为字节码,再次使用到该模块时,凯旋使用编译后的字节码文献即可。

模块和包亦然对象

著作中,咱们一直在反复说起“Python中一切皆对象”,模块和包当然也不例外,亦然Python中的对象。

咱们不错通过代码来简陋考证一下这个论断,凯旋看代码:

咱们领先界说了一个文献夹package_test算作包,然后在文献夹中创建一个module_test.py文献,算作模块,模块中仅有一滑代码:

print("这是在模块[module_test]中")

新的进口文献:main_2.py

import package_testfrom package_test import module_testimport sysprint(package_test)print(type(package_test))print(module_test)print(type(module_test))print(sys)print(type(sys))# sys.modules保存了现时加载的统共模块,大部分是内置模块,咱们自界说的模块在字典的终末print(sys.modules)print(sys.modules['package_test'])print(sys.modules['package_test.module_test'])

目次结构如下:

推论终结如下:

从推论终结中不错得出如下论断:

1、包、自界说的模块、内置模块都是对象,是由module这个类实例化的对象。

2、Python证据器加载的统共模块都会保存在sys.modules这个字典中,key为模块名,value为对应的实例对象。

追念

本文简陋先容了模块化念念想的由来,过甚在更高等别的代码复用场景中的期骗。在Python中模块和包,对应与Python文献及文献夹,况兼,模块和包都是对象,是module类的实例化对象。

本文只是简陋引入了模块和包的成见,具体的使用细节,在后头的著作中将逐个补充证据。

感谢您的拨冗阅读高中 自慰,要是对您学习Python有所匡助,宽饶点赞、良善。



Powered by 吉吉影音欧美性爱 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2024 版权所有