1.import 模块名

2.from 模块名 import 类名(或方法名或全局变量)

3.from 模块名 import *   导入模块名下的所有类名,方法,全局变量

4.from 模块名 import 类名(或方法名或全局变量) as 别名    原来的名称太长,给它起个别名

5.定位模块:

  当你导入一个模块,Python解析器对模块位置的搜索顺序是:

  1. 当前目录
  2. 如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录。
  3. 如果都找不到,Python会察看默认路径。UNIX下,默认路径一般为/usr/local/lib/python/
  4. 模块搜索路径存储在system模块的sys.path变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

6.自定义模块方法一

(1)首先认识一个变量 __name__

  __name__这个系统变量显示了当前模块执行过程中的名称,如果当前程序运行在这个模块中,__name__ 的名称就是__main__如果不是,则为这个模块的名称。
  __main__一般作为函数的入口,类似于C语言,尤其在大型工程中,常常有if __name__ == "__main__":来表明整个工程开始运行的入口。

使用这个变量的结果可以判断是直接执行的python脚本还是被引入执行的,从而能够有选择性的执行测试代码

例子:

# 加法运算
def my_sum(a,b):
return a+b # 1.开发完成之后需要自测
# 1.1一般需要创建一个函数 来完成自测
def main():
# 定义一个变量
ret=my_sum(10,20)
print(ret) # 书写格式一般都会这么些(开发常用于测试或者作为程序的入口)
# 默认情况下,在本模块内执行这个模块,当前的这个python的变量__name__的值为__main__
if __name__ == '__main__':
main()

7.自定义模块方法二:

(1)使用__all__,只有使用from xxx import * 的时候__all__才能产生作用。如果在一个模块中,定义了很多的类,方法,全局变量,如果使用from xxx import * 的方法使用该模块,而又不想让使用模块中的某些类,方法或者全局变量,那么就需要在该模块里写上__all__=[],在列表里写上允许导入的类,方法,全局变量,如果不在这个列表里注册,就不能使用该类,方法或者全局变量了。

__all__=["name","sum","Student"]

==================================

python中的包

(1)python中的包会有一个__init__.py模块。在python3.x没有__init__.py也可以正常使用,但是在python2.x中必须有__init__.py

(2)在包中的__init__.py中定义all=[在这里面添加你想要导入的模块名]

(3)同理在每个模块下__all__=[]添加你允许导入的类名,方法名,全局变量

(4)使用from 包名.模块名 import *    导入模块(1)(2)(3)才能生效

其他导入方法:import 包名.模块名

python中模块的制作的更多相关文章

  1. Python中模块之os的功能介绍

    Python中模块之os的功能介绍 1. os的变量 path 模块路径 方法:os.path 返回值:module 例如:print(os.path) >>> <module ...

  2. 查看python中模块的所有方法

    查看python中模块的所有方法     安装的python模块,现将查看方法总结如下 一.CMD命令行下使用pydoc命令 在命令行下运行$ pydoc modules即可查看 二.在python交 ...

  3. [python]关于在python中模块导入问题追加总结

    [背景] 最近在写程序时,我使用的eclipse编辑器运行都没有问题,然后部署到自动化环境上却偏偏报找不到相应模块问题,现在对该问题在之前的贴子上追加总结 原帖子:[python]关于python中模 ...

  4. [笔记]Python中模块互相调用的例子

    python中模块互相调用容易出错,经常是在本地路径下工作正常,切换到其他路径来调用,就各种模块找不到了. 解决方法是通过__file__定位当前文件的真实路径,再通过sys.path.append( ...

  5. Python中模块的发布与安装

    模块(Module) Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个 ...

  6. (转载)Python中模块的发布与安装

    模块(Module) Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包很类似,比如在Python中要调用sqrt函数,必须用import关键字引入math这个 ...

  7. 关于python中模块的import路径

    前两天被一个同事问了一个python的问题: 为什么一个目录里的python文件引用不要另一个兄弟目录的python文件,但是这两个目录的父母录运行时是可以引用到了.当时感觉一直是模块和包的机制问题, ...

  8. Python中模块之time&datetime的功能介绍

    time&datetime的功能介绍 1. time模块 1. 时间的分类 1. 时间戳:以秒为单位的整数 2. 时间字符格式化:常见的年月日时分秒 3. 时间元祖格式:9大元素,每个元素对应 ...

  9. Python中模块json与pickle的功能介绍

    json & pickle & shelve 1. json的序列化与反序列化 json的使用需要导入该模块,一般使用import json即可. json的序列化 方法1:json. ...

随机推荐

  1. hdu 4289 dinic模板

    题意:有N个城市,现在城市S出现了一伙歹徒,他们想运送一些炸弹到D城市,不过警方已经得到了线报知道他们的事情,不过警察不知道他们所在的具体位置,所以只能采取封锁城市的办法来阻断暴徒,不过封锁城市是需要 ...

  2. mac登录窗口出现白框问题解决

    昨天早上起床打开电脑,发现登录窗口的界面出现了大半边的白框,如下图,可是昨晚上关机前还是好好的,而且新电脑不至于啥也没干屏幕就出问题. 输入密码进入桌面,OK,不是屏幕的问题,那为什么会出现白框呢? ...

  3. 数据库程序接口——JDBC——功能第二篇——数据源之C3P0数据源

    综述 C3P0由三部分内容组成.实例化对象,各配置项的含义,以及加载配置项的方式. 实例化对象的方式有三种,第一种方式直接new ComboPooledDataSource,第二种方式使用工厂类Dat ...

  4. 记一道简单的re--BUUctf reverse1

    1.首先拖进ida里,看到了左面一百多function...还是shift+f12 查看敏感字符串吧 2.发现了这两个比较可疑的字符串,然后双击this is the right flag 进入到了他 ...

  5. (爬虫)随机生成一个header

    #!/usr/bin/env python #-*- coding: utf-8 -*- #__Author__: yunrui #__Version__: 1.0 #__Time__: 2019/1 ...

  6. PHP 文件上传之如何识别文件伪装?——PHP的fileinfo扩展可!

    问题:文件上传时候需要验证上传的文件是否合法,文件伪装如何识别? 一个简单测试:把txt文件后缀直接改成jpg;上传 <!DOCTYPE html> <html> <ti ...

  7. HDU1276-士兵队列训练问题 (Queue)

    题很简单,STL中queue的基本使用. #include <bits/stdc++.h> using namespace std; int N,num; int main() { sca ...

  8. react组件之间传值方式

    1.父向子(通过props传值) 2.父向更深层的子(通过context传值) 3.子向父(通过回调函数传值:在父组件中创建一个函数来接收子组件传过来的参数值,通过父组件将这个函数做为子组件的属性传递 ...

  9. Sqoop的安装及常用命令

    本次安装主要是为了离线分析数据清洗完成后的操作:网站日志流量分析系统之数据清洗处理(离线分析) 一.概述 1. sqoop是Apache 提供的工具,用于hdfs和关系型数据库之间数据的导入和导入 2 ...

  10. mysql的一些不常用语句

    今天写项目,用的ThinkPHP,写的时候有点费劲,原因嘛 无非是对框架或者mysql的一些知识的遗忘. 1.为了配合ThinkPHP中的控制器,需要修改数据库中表名,一时想不起来,幸好有百度,问题很 ...