最近由于初学python,对包,模块的导入问题进行了资料的搜集,查阅,在这里做一个总结:

  • 一: import 模块

在import的过程中发生了什么?我们用一个实验来说明:

以上截图表明:在import + 模块中,直接执行了里面是语句

引申:一个模块不会被重复导入,如果要使用被导入模块的变量,要用   模块.变量名  的方式 。

如果全局空间与模块的局部空间有命名重复的变量名或函数名,则在各自对应的域内去寻找各自的对象

如下代码所示

 ########file_2.py
print("This is file_2") file_v2 = 'msy' #定义变量
def file_d2(): #定义函数
print("This is file_d2!!!") ########file_1.py
import file_2 #导入模块 print(file_2.file_v2) #使用模块的变量
print(file_2.file_d2()) #使用模块的函数
######起别名需注意的地方

import file_2 as f

#####注意:::起了别名以后,原来的名字在当前模块就不能使用了

拓展:按照PeP8开发规范,导入多个模块时,虽然可以一个import可以一次性导入多个模块,但不符合规范,且需按照#内置模块,#第三方模块,#自定义模块

的顺序来导入

  • 二:模块搜索路径
 ##############模块搜索路径

 import  sys
import os base = os.path.basename(__file__) #当前文件名
base2 = os.path.abspath(__file__) #绝对路径
base3 = os.path.dirname(os.path.abspath(__file__)) #当前文件路径
base4 = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) #当前文件上级路径

引申:除了sys.path中是内置,拓展模块外,其他模块都应使用你直接执行这个文件所在的目录作为搜索路径;

  一个模块是否能被导入,就看这个模块的所在的目录在不在sys.path中,如下图演示:

  • 三:运行py的方式

常用的两种运行方式:1、cmd  python xx.py   脚本的方式运行

          2、导入他,import xx.py

  但大多数情况我们所见到的import 时 并不会有控制台输出,但是cmd运行的时候为什么有输出呢?(pycharm 运行也是脚本运行)

  或者如何达到这样的效果呢?

 #############实现import调用时不输出代码
if __name__ == __main__:
代码块 #############################

关于python中的包,模块导入的问题详解(一)的更多相关文章

  1. Python中生成器和yield语句的用法详解

    Python中生成器和yield语句的用法详解 在开始课程之前,我要求学生们填写一份调查表,这个调查表反映了它们对Python中一些概念的理解情况.一些话题("if/else控制流" ...

  2. python中利用队列asyncio.Queue进行通讯详解

    python中利用队列asyncio.Queue进行通讯详解 本文主要给大家介绍了关于python用队列asyncio.Queue通讯的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细 ...

  3. 关于python中的包,模块导入的问题详解(二)

    from import导入 紧接着的是from xx import xx  语法 1 ################ 2 from my_moudule import name 3 print(na ...

  4. python中如何添加模块导入路径?

    python中自定义模块导入路径的方式主要有以下3种: (1)使用sys.path.append() 随着程序执行,会动态地添加模块导入的路径,但是程序执行结束后就会立即失效(临时性的) import ...

  5. python的内置模块xml模块方法 xml解析 详解以及使用

    一.XML介绍 xml是实现不同语言或程序直接进行数据交换的协议,跟json差不多,单json使用起来更简单,不过现在还有很多传统公司的接口主要还是xml xml跟html都属于是标签语言 我们主要学 ...

  6. python接口自动化(九)--python中字典和json的区别(详解)

    简介 这篇文章的由来是由于上一篇发送post请求的接口时候,参数传字典(dict)和json的缘故,因为python中,json和dict非常类似,都是key-value的形式,为啥还要这么传参,在群 ...

  7. Python使用socketServer包搭建简易服务器过程详解

    官方提供了socketserver包去方便我们快速的搭建一个服务器框架. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的 ...

  8. python中的列表(list) 切片详解

    1.切片: 通过指定下标的方式来获得某一个数据元素,或者通过指定下标范围来获得一组序列的元素,这种访问序列的方式叫做切片.    访问某一个数据元素的的语法如下:    sequence[index] ...

  9. Python中strip()、lstrip()、rstrip()用法详解

    Python中有三个去除头尾字符.空白符的函数,它们依次为: strip: 用来去除头尾字符.空白符(包括\n.\r.\t.' ',即:换行.回车.制表符.空格)lstrip:用来去除开头字符.空白符 ...

随机推荐

  1. UVALive 3716 DNA Regions ——(式子变形)

    一开始直接想到了二分,写了一发然后过了全部样例就交了,果断WA.因为这个问题显然是不满足单调性的. 然后想之前刚做的斜率优化DP,但是那个是求斜率最大值,不是求满足斜率大于一定值的最大长度的.也构造不 ...

  2. MySQL:数据库名或者数据表名包含-

    [参考文章]:mysql数据库名称中包含短横线的对应方式 1. 现象 命令行下操作 名称包含 " - " 数据库或者数据表时,语句执行报错: 2. 解决方案: 使用 `` 字符(E ...

  3. debian、ubuntu安装metasploit通用方法

    网上有很多方法让去github上下载安装,这方法的确可以但是特别慢,更新也特别慢,这里写下比较快的方法 1.添加kali源 vim /etc/apt/sources.list 在原有源的基础上添加国内 ...

  4. mysql用户与授权

    视图 create view 视图名   as  查询语句: MariaDB [hellodb]> create view view_left as select name from stude ...

  5. Node.js中npm常用命令大全

    npm是什么 NPM的全称是Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载.安装.上传以及管理已经安装的包. npm ...

  6. DELPHI安卓动态权限申请

    DELPHI安卓动态权限申请 安卓8.0以前的版本,只需要给静态权限就可以了,但安卓8.0及以后的版本,还需要运行期用代码动态申请权限. 下面以<蓝牙权限>为例,其他权限类似. Delph ...

  7. Flutter移动电商实战 --(28)列表页_商品列表后台接口调试

    主要调试商品列表页的接口 这个接口是最难的因为有大类.小类还有上拉加载 先配置接口 config/service_url.dart //const serviceUrl='http://test.ba ...

  8. 常见Web攻击及解决方案

    DoS和DDoS攻击 DoS(Denial of Service),即拒绝服务,造成远程服务器拒绝服务的行为被称为DoS攻击.其目的是使计算机或网络无法提供正常的服务.最常见的DoS攻击有计算机网络带 ...

  9. Android 显示系统:SurfaceFlinger详解

    一.Android系统启动 Android设备从按下开机键到桌面显示画面,大致过程如下图流程: 开机显示桌面.从桌面点击 App 图标到 Activity显示在屏幕上的过程又是怎样的呢?下面介绍And ...

  10. Storm和Hadoop 区别

    Storm - 大数据Big Data实时处理架构   什么是Storm? Storm是:• 快速且可扩展伸缩• 容错• 确保消息能够被处理• 易于设置和操作• 开源的分布式实时计算系统- 最初由Na ...