首页 > 编程语言 >python之模块与包

python之模块与包

时间:2022-08-25 08:44:51浏览次数:62  
标签:__ 文件 python py 导入 模块 文件夹

1.导入方式

 

 

3.全导入

 

 from 文件名  import  *   #*表示所有

 

  PS:针对于*号的导入还可与控制名字的数量

  在模块文件中可以使用__all__ = [字符串的名字]控制*能够获取的名字

循环导入问题

循环导入是两个文件彼此导入彼此

解决方法:彼此在导入名字之前 先准备好

(循环导入将来应尽量避免出现)

 

判断文件类型(判断是执行文件还是被导入文件)

所有的py文件都只带一个__name__内置名

  当py文件是执行文件的时候__name__的结果是__main__

  当py文件是导入的文件时__name__的结果是模块名(文件名)

__name__主要用于开发代码的作者测试代码用

  

if __name__  == "__main__":
   需要执行的子代码            #当文件是执行文件时才会执行if的子代码

上述判断一般只出现在整个程序的启动文件中

 

模块的查找顺序

1、先去内存中查找

2、再去内置中查找    

3、再去sys.path中查找(程序系统环境变量)就是和你执行文件相同的路径(必须是同级别)下查找

解决方案:1.如果非要使用不在sys.path中的文件你可以将文件路径追加到sys.path中

      sys.path.append(文件所在路径)

      2.利用from .....ipmort.......句式  (起始位置一定是执行文件所在的路径)

PS:创建模块文件的时候尽量不要和内置模块名冲突

  导入模块的的时候一定要知道谁是执行文件所有文件都是参照执行文件来的

 

绝对导入与相对导入

只要涉及模块的导入 那么sys.path永远以执文件为准

绝对导入:

  其实就是以执行文件所在的sys,path 为起始路径 往下一层查找

  from xxx  import xxx 

  from aaa.bbb.ccc....  import B

如果不是用pycharm运行 需要将项目的根目录添加到sys.path(但针对项目根目录的绝对路径偶遇模块可以帮助我们获取>>>:os模块)

相对导入:

  . 表示当前路径

  .. 表示上一路径

  ../..  表示上上一层路径

相对导入可以不参考执行文件所在路径 直接以当前模块文件路径为准

  1.只能在模块文件中使用 不能在执行文件中使用(.号不能出现在执行文件中)

  2.相对导入在项目比较复杂时比较容易出错

 

包的概念

1.如何理解包

  专业角度:内部含有__init__.py的文件夹

  直观角度:就是一个文件夹

2.包的作用

  内部存放多个py文件(模块文件)

3.具体使用

   import 包名

  导入包名其实是导入里面的__init__.py文件(该文件里面有什么你才能用是什么)

    其实也可以跨过__init__.py直接导入里面的模块文件

    针对python3解释器文件夹里面是否有__init__不影响

 

编程思想的转变

1、小白阶段

  按照需要从上到下堆叠代码    单文件

2.函数阶段  

  将代码按照不同的功能封装成不同的函数  单文件

3.模块阶段

  个根据功能的不同拆分不同的模块文件    多文件

 

 

软件开发目录规范

1.bin文件夹

  用于存储文件的启动文件  start.py

2.sonf文件夹

  用于存储程序的配置文件  settings.py

3.sore文件夹

  用于存储文件的核心逻辑  src.py

4.lib文件夹

  用于存储程序的公共功能  common.py

5.db文件夹

  用于存储程序的数据文件  userinfo.txt

6.log文件

  用于存储程序的日志文件  log.log

7.interface文件夹

  用于存储程序的接口文件  user.py  order.py  goods.py

8.readme文件(文本文件)

  用于存储程序所需要的第三方模块名称和版本

 

 

常见内置模块

1.collections模块

  1.1具名元组(含有名字的元组)

 

 2.有序字典

 

时间模块

  时间的三种格式

    1.时间戳  time.time()

    2.结构化时间

    3.格式化时间

 

 

 

 

三种时间之间的转换

 

 

 

 

标签:__,文件,python,py,导入,模块,文件夹
From: https://www.cnblogs.com/lgb114/p/16620122.html

相关文章

  • python的垃圾回收机制
    1、引用计算  2、标记清除  3、分带回收 ......
  • 学习:python异常
    异常就是我们在写python时,经常看到的报错信息,例如:NameErrorTyperErrorValueError等这些都是异常异常会终止程序  SyntaxError语法错误NameError:name'b'is......
  • 【2022知乎爬虫】我用Python爬虫爬了2300多条知乎评论!
    您好,我是@马哥python说,一枚10年程序猿。一、爬取目标前些天我分享过一篇微博的爬虫:https://www.cnblogs.com/mashukui/p/16414027.html但是知乎平台和微博平台的不同......
  • 9、Python基础夯实篇——数据的常用操作
    数据拷贝数据引用产生的问题(1)下面的代码会发生什么情况呢?L1=[1,2[3,4,5]]L2=L1L2[0]=6print('L1':L1)print('L2':L2)输出:L1:[......
  • python学习Day52
    Day52今日内容概要CSS属性盒子模型浮动布局overflow溢出属性定位属性z-index层叠顺序opacity透明效果手搭页面练习JavaScript简介JS变量与常量JS数据类......
  • 【2022-08-24】python前端开发(三)
    python前端开发(三)CSS盒子模型margin:用于控制元素与元素之间的距离;margin的最基本用途就是控制元素周围空间的间隔,从视觉角度上达到相互隔开的目的。......
  • 【python】numpy数组升维函数expand_dims()
    expand_dims(a,axis),其中a为输入的数组,axis为整型指定要增加的维数位置可以结合shape()来看,shape()返回的是一个tuple,把其看成一个数组并指定下标。如果shape为(1,2),则......
  • python 数据库建表操作
    fromdjango.dbimportmodels#Createyourmodelshere.classUser(models.Model):name=models.CharField(max_length=32)age=models.IntegerField()reg......
  • 《Python源码剖析》PDF高清版试读
      《Python源码剖析》PDF高清版免费下载地址  内容简介  · · · · · ·作为主流的动态语言,Python不仅简单易学、移植性好,而且拥有强大丰富的库的......
  • Python小游戏——外星人入侵(保姆级教程)第一章 09重构check_events()
    系列文章目录第一章:武装飞船09重构check_events()一、重构1.重构原因随着游戏的开发,方法_check_events()将越来越长。因此将其部分代码放在两个方法中,其中一个处理KEY......