python模块的导入详解
一:一个小问题:什么是模块?
我的理解是:有通用功能的文件的集合。
二:为什么要使用模块?
我们通常为了使自己以前写的东西保存下来,会把东西写入文件中保存下来,必要时我们把这些文件当脚本去执行,也可以把他们当做模块导入其他的模块中,实现了功能的存放利用。
三:怎样导入自己的模块?
自定义demo模块:
print('in demo.py')
money=100
def read():
print('in read',money)
print(__name__)
'''import demo
def read():
print('lxx')
money=200
demo.read()
print(demo.money)
过程:
1.找到模块 2.(先从sys.modules(字典)里查看是否已经导入了模块,如果没有被导入,就依据sys.path路径寻找模块,找到了就导入)创建这个模块的命名空间 3.把文件中的名字都放到命名空间里
import sys
print(sys.modules.keys())#首先看看模块在不在'''
关于模块的各个方法:
# import time as tt #给模块起别名 重命名之后之前的名字不能用了
# print(tt.time()) from time import sleep #单独从某个模块中导入一个方法或者是变量
# from demo import read
# read() # from demo import * #能导入全部的东西
# # print(money)
# # read()
# # read2() # from math import pi #pi特定的:圆周率
# print(pi)
# pi=234
# print(pi)
#结果:
# 3.141592653589793
# 234
五:把模块当做脚本执行:我们可以通过模块的全局变量__name__来查看模块名
自己写的文件 demo __name__ 得到的是:main
但当你导入这个模块的时候 __name__ 得到的就是demo名字
所以 这个方法可以:当我们想要一个方法是现在自己写的文件上,但不希望他使用在被导入的模块中的时候。
六:导入模块是要注意的地方:
1.所有模块导入应尽量往上写。
2.导入循序最好是:内置模块--》扩展模块--》自定义模块
3.检查模块不会重复被导入:sys.moudles
4.从哪导入模块:sys.path
5.from 模块名 import * 和 _all_ 是一对,没有这个变量就会导入所有的,如果有all就只导入all列表中的。
python模块的导入详解的更多相关文章
- Python模块调用方式详解
Python模块调用方式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其 ...
- python模块之psutil详解
一.psutil模块: 1.psutil是一个跨平台库(http://pythonhosted.org/psutil/)能够轻松实现获取系统运行的进程和系统利用率(包括CPU.内存.磁盘.网络等)信息 ...
- python模块之XlsxWriter 详解
Xlsx是python用来构造xlsx文件的模块,可以向excel2007+中写text,numbers,formulas 公式以及hyperlinks超链接. 可以完成xlsx文件的自动化构造,包括 ...
- python模块与包详解
<1>.模块:任何 *.py 的文件都可以当作模块使用 import 导入 >>>improt test >>>b=test.a() >> ...
- python中argparse模块用法实例详解
python中argparse模块用法实例详解 这篇文章主要介绍了python中argparse模块用法,以实例形式较为详细的分析了argparse模块解析命令行参数的使用技巧,需要的朋友可以参考下 ...
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- Python对Excel操作详解
Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl ...
- python操作redis用法详解
python操作redis用法详解 转载地址 1.redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用 ...
- 第7.19节 Python中的抽象类详解:abstractmethod、abc与真实子类
第7.19节 Python中的抽象类详解:abstractmethod.abc与真实子类 一. 引言 前面相关的章节已经介绍过,Python中定义某种类型是以实现了该类型对应的协议为标准的,而不 ...
随机推荐
- MYSQL增删改查添加外键
给商品表(从表)添加一个外键 ALTER TABLE product ADD CONSTRAINT FK_cno FOREIGN KEY(cno) REFERENCES category(cid 从 ...
- web前端开发面试题(附答案)-3
1.用纯css创建一个三角形的原理: .demo{ width:0; height: 0; border: 5px solid transparent; border-left-color: red; ...
- 要不要学习Git(分布式版本控制系统)
做技术的人,要不要学一学Git呢? 提出这个问题,是因为很多小伙伴还不会使用Git. 对于任何新一代的技术工具,它在业界普及都有一个过程,Git的阻碍是:学习成本.工具迭代的成本. SVN诞生于200 ...
- Andorid监听SoftKeyboard弹起事件
对于Android键盘事件Google并没有提供一个好的接口去监听它,有时候就为项目需要就必须要自己去想办法去监听,由于我最近也要实现登陆与注册的功能,我的想法很简单实现起来也比较容易,主要的原理是在 ...
- Spring Cloud 版本控制
### 正常版本 ``` org.springframework.boot spring-boot-starter-parent 2.1.7.RELEASE ``` ### SpringCloud 版 ...
- [开源]如何使用goapp写你的后台管理系统_golang
简析 基于 Gin + GORM + Casbin + vue-element-admin 实现的权限管理系统. 基于Casbin 实现RBAC权限管理. 前端实现: vue-element-admi ...
- 关于javascript中的prototype
作为一个致力于前端开发的人员,能够熟练掌握javascript的原理和机制是每个小白的必经之路,这也是最痛苦的.有人说前端功力好不好最主要的就是看对js的掌握能力,有人说十年也啃不完一门javascr ...
- php企业微信获取员工userid以及打卡信息
企业微信可以通过部门列表获取部门下的员工信息,从而获取到员工的userid //首先获取需要的access_token $access_token = json_decode($this->ge ...
- 古剑奇谭三已取消该页导航,B站版本无法登陆
最近登陆古剑三突然出现这个问题 怎么重开也无法登陆 最后发现是Ie设置问题 解决方法 点中间这个圆形图标打开 小娜 搜索“ie” 点击打开ie之后点右上角的小齿轮 选择“internet选项” 连接- ...
- VM虚拟机启动夜神模拟器卡99%解决办法
VM虚拟机启动夜神模拟器卡99%解决办法 本人出现的情况: 物理机装的是win7系统,安装了vmware14(安装过程未出现报错),在vmware14 上 win10系统(安装过程未出现报错),安装夜 ...