一、定义

 模块:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能),本质就是.py结尾的python文件(比如:文件名:test.py,对应的模块名:test)

 包:用来从逻辑上组织模块的,本质就是一个目录,且必须带有__init__.py的文件

二、导入模块方法

 方法一:import 模块名                                             =》导入模块中的函数、变量等
 方法二:import 模块名1,模块名2                           =》导入模块中的函数、变量等
 方法三:from 模块名 import *                                   =》导入模块中的所有内容
 方法四:from 模块名 import 变量/函数等 as 别名    =》导入模块中的变量、函数并给一个别名

三、import本质
 导入模块的本质就是把python文件解释一遍
 导入包的本质就是执行该包下的__init__.py文件

四、添加环境变量

import os,sys
print('当前目录的相对路径:',__file__) # 获取当前目录的相对路径
print('当前目录的绝对路径:',os.path.abspath(__file__)) # 获取当前目录的绝对路径
print('当前目录的上级目录:',os.path.dirname(__file__)) # 返回当前文件的上级目录 BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 获取当前目录的上上级目录
sys.path.append(BASE_PATH) # 添加环境变量
# sys.path.insert(0,BASE_PATH) # 指定位置插入环境变量,不建议这么用

五、示例

  注:以下所有导入模块操作,都在main.py执行。

  目录结构如下:

 1、导入单个模块:

import module_1  # import 导入单个模块
print(module_1.name) # 调用模块中的变量
module_1.say_hello() # 调用模块中的方法

 2、导入多个模块:

import module_1,module_2  # 导入多个模块
module_1.say_hello()
module_2.regin()

 3、导入模块中的所有内容:

from module_1 import * #导入模块中的所有内容,不建议此用法
print(name)

 4、导入模块变量并指定别名

from module_1 import name as lzh_name  #  使用别名
name = 'module_test'
print(name)
print(lzh_name)

 5、导入包,即:执行该包下的__init__.py文件

import os,sys
BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_PATH) # 末尾位置添加环境变量
# sys.path.insert(0,BASE_PATH) # 指定位置插入环境变量,不建议这么用
import package_test

  package_test下_init_内容:

#!/user/bin env python
# author:Simple-Sir
# time:2019/8/20 21:46
# import test1
from . import test1 # . 从当前目录导入模块
print('from the packg packgtest.')

 6、导入包,并调用模块:

import os,sys
BASE_PATH = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(BASE_PATH) # 末尾位置添加环境变量
# sys.path.insert(0,BASE_PATH) # 指定位置插入环境变量,不建议这么用
import package_test
package_test.test1.test()

 7、优化导入模块:

   比如:重复使用module_2.regin()时:

from module_2 import regin

def func1():
regin()
print('in the func1') def func2():
regin()
print('in the func2')

初识python: 模块定义及调用的更多相关文章

  1. Python模块定义和使用

    Python中所谓的模块就是一个Python文件,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块.模块由代码.函数或类组成.编程中使用模块不仅可以提 ...

  2. python 函数定义及调用

    1.什么是函数? 在程序中,函数就是具备某一功能的工具,事先将工具准备好即函数的定义:遇到应用场景拿来就用即函数的调用:函数必须遵循先定义后调用的原则 2.为什么要用函数 不用函数的问题是: 程序冗长 ...

  3. Python 模块定义、导入、优化详解

    一.定义 模块:用来从逻辑上组织 python 代码(变量,函数,类, 逻辑:实现一个功能),本质就是 .py 结尾的 python文件(例如:test.py文件,对应的模块名:test) 包:用来从 ...

  4. python 模块定义导入

    1.定义模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是:.py结尾的python文件(文件名:test.py,对应的模块名:test)包:本质就是一个目录(必须 ...

  5. 初识python 函数(定义,传参,返回值)

    python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pa ...

  6. 3-12 Python函数定义与调用

    Python 函数 函数概念 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.如print() range()函数,但你也可以自己创建函 ...

  7. python模块--如何相互调用自己写的模块

    一.模块相互调用同级目录调用时的两种方法 import module print(module.add(3,8)) from module import add print(add(2,4)) 同级目 ...

  8. 8.模块定义导入优化time datetime内置模块

    1.模块(module)的定义:本质就是.py的python文件用来从逻辑上组织python代码(变量\函数\类\逻辑:实现一个功能)包(package)的定义:用来从逻辑上组织模块的,本质就是一个文 ...

  9. Python模块初识

    目录 一 模块初识 二 模块分类 三 导入模块 四 Python文件的两种用途 五 模板查找顺序 六 软件开发目录规范 一.模块初识 模块是自我包含并且有组织的代码片段,是一系列功能的集合体,一个py ...

随机推荐

  1. 【Linux】【Services】【SaaS】Docker+kubernetes(7. 安装Docker私有镜像仓库)

    1. 简介 1.1. 自己做个私有镜像,方便上传和下载,我也在docker官网注册了一个账号,做好的镜像可以传上去 1.2. Redhat自带私有镜像的功能,需要安装包,这是howto: https: ...

  2. 使用AOP思想实现日志的添加

    //1.创建日志表syslog------->创建日志的实体类--------->在web.xml中配置监听 <listener>     <listener-class ...

  3. 微服务下前后端分离的统一认证授权服务,基于Spring Security OAuth2 + Spring Cloud Gateway实现单点登录

    1.  整体架构 在这种结构中,网关就是一个资源服务器,它负责统一授权(鉴权).路由转发.保护下游微服务. 后端微服务应用完全不用考虑权限问题,也不需要引入spring security依赖,就正常的 ...

  4. Mybatis-Plus默认主键策略导致自动生成19位长度主键id的坑

    原创/朱季谦 某天检查一位离职同事写的代码,发现其对应表虽然设置了AUTO_INCREMENT自增,但页面新增功能生成的数据主键id很诡异,长度达到了19位,且不是从1开始递增的-- 我检查了一下,发 ...

  5. Gitlab更改项目间的fork提交关系

    目录 一.前情提要 二.实际操作 一.前情提要 1.dzsw/cgd_xx项目,通过fork按钮在dzsw_dev组下面同步了一个项目 2.但是现在dzsw/cgd_xx项目因为没法提交合并请求,一点 ...

  6. Jenkins环境变量

    目录 一.环境变量 二.自定义环境变量 三.自定义全局变量 四.常用变量定义 五.常用环境变量 一.环境变量 环境变量可以被看作是pipeline与Jenkins交互的媒介.比如,可以在pipelin ...

  7. hooks中,useEffect无限调用问题产生的原因

    前言:我在我的另一篇博客中有说道useEffect监听对象或者数组时会导致useEffect无限执行,并给予了解决方案-useEffect无限调用问题 .后来我想从其产生根源去理解并解决这个问题. 原 ...

  8. Table.RowCount行列计数…Count(Power Query 之 M 语言)

    数据源: 任意五行两列 目标: 计算行数(包括空行) 操作过程: [转换]>[对行进行计数] M公式:  = Table.RowCount( 表 ) 扩展: 对表中列进行计数:= Table.C ...

  9. python3 5月26日 time模块常用时间转换 &datetime()模块学习 random()

    import time  获取当前时间: 指定字符串格式:time.strftime("%Y-%m-%d %H:%M:%S") 当前时间戳:time.time() 当前时间元组格式 ...

  10. Python3 json &pickle 数据序列化

    json 所有语言通用的信息交换格式 json.dumps()将list列表.dict字典.元组.函数等对象转换为可以存储的字符格式存入文件 json.dump(数据对象名,已以写方式打开的对象) 直 ...