首页 > python莫比乌斯环_python基础|模块

python莫比乌斯环_python基础|模块

1 模块简介

在python中常见的模块有三种,在python解释器中的内置模块,第三方模块和自定义模块。模块的有使用python编写的文件,有已被编译为共享库或DLL的C或C++扩展,也有使用C编写连接到python解释器的内置模块和把一些列模块组织起来的文件(文件包)。

python使用模块内置模块,第三方模块以及内置模块,是python的一大特点。大大提高了开发效率。使用自定义模块使开发效率大大提高。自定义模块也可以减少代码冗余。

2 模块导入

python中使用模块,必须明白执行文件和被导入的模块。

导入模块有两种方法 import 模块名 和 from 模块名 import 模块内的对象。首先在pycharm中同级文件夹下创建两个文件,例如start.py和m1.py文件。在m1文件内写下面代码。这是使用import+模块名的方法导入,这种方式执行文件start,被执行文件m1。start在使用m1中的变量时,需要加前缀模块名.使用对象。这种指名道姓,不会与start文件相同名字的变量冲突。

#m1文件中的代码

deffunc():print('from 01 of func')#start文件中的代码

import m1 #导入m1文件

m1.func() #执行m1文件中的函数function()

>>>from 01 of func

在上面的模块调用,实质上经历三个步骤。第一步在start文件内创建一个模块的名称空间,第二部执行m1文件中的代码,将执行过的代码放在m1的名称空间。第三步继续执行start的代码,执行到m1.func()。执行该函数在m1中的代码。

如过被执行文件名过于繁杂,还可给被调用文件名起个别名。import 模块名 as 别名。在下面需要调用该文件是。前缀名可以用别名来替代。此外,import可以同时导入多个模块,在每个模块名用逗号隔开即可。但不建议使用,因过多的模块,使程序读取来不清晰。

#使用from 模块名 import 模块内的对象

from m1 importfunc

func()>>>from 01 of func

这是另一种导入模块的方法,这种方法可以精准的导入m1文件内的变量对象。在使用时可以直接使用,但是执行文件有相同变量名,在执行时会有冲突。

需要注意的是,执行文件对模块的搜索优先级是首先搜索内存中的模块,就是内置空间的模块,最后sys.path中的模块。文件被导入都是参考执行在sys.path的位置。

文件导入有绝对导入和相对导入。以执行文件的在sys.path中的位置查找导入称之为绝对导入,执行文件与被导入的模块中都可以使用。相对导入是当前所在文件位置查找。.代表当前所在文件的文件加,..代表上一级文件夹,...代表上一级的上一级文件夹。使用方便,但不能在被执行文件使用。

#在被执行文件打印

print(__file__)>>>main#被调用时

>>>m1 #模块名

软件开发目录规范

软件开发目录规范在一个项目文件夹下分文件夹做项目。一个项目开发下的子文件夹大致有者八个文件:1,bin文件夹,这个文件内有装有项目启动文件(start)。2, conf文件夹,这个文件夹下装配置文件(setting)。3, lib文件,装有公共功能的文件(common)。4,core文件夹,装有核心逻辑的文件(src)。5,log文件夹装有日志。7,db文件,装有数据文件。8,Readme文本文件,对项目的说明都可以写在这里。

更多相关:

  • 简介 OpenCV是一个C++库,用于实时处理计算机视觉方面的问题,涵盖了很多计算机视觉领域的模块。  OpenCV有两个Python接口,老版本的cv模块使用OpenCV内置的数据类型,新版本的cv2模块使用NumPy数组。 对于新版本的模块,可以通过下面方式导入: import cv2 而老版本的模块则通过下面方式导入: i...

  • 一. 背景 在 CMakeLists.txt 中,某模块 A 通过 add_subdirectory 引入模块 B ,模块 B 通过 add_subdirectory 引入模块 C。模块 C 里面本身就是一个开源的动态库,比如 libtask。目的想要将 C 模块打包成一个 Target ,以便在 A 模块中中使用方便。 二. 旧...

  • 一、python中的模块 有过C语言编程经验的朋友都知道在C语言中如果要引用sqrt函数,必须用语句#include 引入math.h这个头文件,否则是无法正常进行调用的。 那么在Python中,如果要引用一些其他的函数,该怎么处理呢? 在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Ja...

  •  对于一些大型的项目来说,将项目的各个模块理清并进行管理,便于后续项目的维护,使用maven管理是很方便的,它可以很好的构建模块来设计项目的整体结构,对一些小型的项目不建议使用 1、新建父maven模块(idea版本为2017.2) 选择maven类型 点击next,填写GroupId和AtifactId 点击next 确认工...

  • 本文来自 运维人生 ,作者:fly是个稻草人链接:http://www.ywadmin.com/?id=76误删除linux系统文件了?不用急,本文将给你一个恢复linux文件的方法,让你轻松应对运维中的各风险问题。方法总比问题多~说在前面的话针对日常维护操作,难免会出现文件误删除的操作。大家熟知linux文件系统不同win有回收...

  • 原文来自SecIN社区—作者:WiHat0x00 什么是WebShell渗透测试工作的一个阶段性目标就是获取目标服务器的操作控制权限,于是WebShell便应运而生。Webshell中的WEB就是web服务,shell就是管理攻击者与操作系统之间的交互。Webshell被称为攻击者通过Web服务器端口对Web服务器有一定的操作权限,而...

  • 断电时文件系统发生了什么?硬盘又发生了什么?下一次开机时写到一半的文件在系统层面还在吗?在底层还在吗?更进一步的, 文件系统如何保证事务性, 会不会存在某种极端情况导致例如最后几个bit还没写完, 文件系统却认为它成功了的情况?回答不限任何文件系统,谢谢!下面是「北极」的回复分享断电的一瞬间,很多事情是无法确定的:1. 你无法确定...

  • 接到项目需求。需要搭建一个页面进行交互,慢慢来b (2).jpg使用python django框架进行页面的搭建在项目文件下打开窗口,输入命令;django-admin startproject helloword#在文件helloword/helloword/创建view.py在view.py文件中输入以代码from django....

  • 常见的错误集合解决方案(一)No.1提示错误'Microsoft.VC90.CRT,version="9.0.21022.8"把Microsoft.NET Framework 3.5.1下面的全部勾选上。No.2解决Qt Designer设计的图标但是VS生成不显示问题描述:在Qt designer中为菜单栏和工具栏设计的图标,但是...

  • 如果excel中有一列存的是手机号码或者身份证号码,那么导入到sql中时,会把手机或者身份证当作数字格式对待,因而会以科学记数法的形式存在sqlserver表中,解决方式,先将excel文件另存为文本文件(制表符)格式,之后sqlserver导入数据时,数据源选择选择“平面数据源”,之后选择刚刚存好的文本文件,导入到sqlserve...

  •   1--数据库导出(exp)    首先进入命令行    导出数据库    在命令行中输入如下命令:      exp   c2j/c2j@c2j    file=c:/table.dmp    tables=jbitaku,jbitakum   grants=y     然后按回车键    说明:     c2j/c2j@c2j...