一、定义

 模块:用来从逻辑上组织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】【Basis】文件系统

    FHS:Filesystem Hierarchy Standard Web site: https://wiki.linuxfoundation.org/lsb/fhs http://www.path ...

  2. 2.8 GO 参数传递

    简单将GO中参数传递分为三类 数字.字符.字符串等类型 结构体 方法 GO的方法本身就是地址的入口,打印一个方法输出的是这个方法的地址 func test_func(){ //0x488a30 fmt ...

  3. solr8.2

    https://www.cnblogs.com/carlosouyang/p/11352779.html

  4. MySQL安装详细教程(数据库免安装版)

    MySQL安装详细教程(数据库免安装版)mysql-5.7.33-winx64.zip 一.软件下载 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产 ...

  5. 30个类手写Spring核心原理之Ioc顶层架构设计(2)

    本文节选自<Spring 5核心原理> 1 Annotation(自定义配置)模块 Annotation的代码实现我们还是沿用Mini版本的,保持不变,复制过来便可. 1.1 @GPSer ...

  6. 07-Spring5 WebFlux响应式编程

    SpringWebFlux介绍 简介 SpringWebFlux是Spring5添加的新模块,用于Web开发,功能和SpringMvc类似的,WebFlux使用当前一种比较流行的响应式编程框架 使用传 ...

  7. Nginx LOCATOIN块配置

    1 匹配模式优先级 location = /uri =开头表示精确匹配,只有完全匹配上才能生效. location ^~ /uri ^~ 开头对URL路径进行前缀匹配,并且在正则之前.无正则普通匹配( ...

  8. shell脚本 用户登录服务器发送钉钉提醒

    一.企业微信配置 1.获取AgentId(AppID).Secret .CropID.部门ID 创建一个企业微信应用获取到AgentId(AppID).Secret 2.获取CropID,点击 &qu ...

  9. 第46篇-signature_handler与result_handler

    在之前介绍为native方法设置解释执行的入口时介绍过,当Method::native_function为空时会调用InterpreterRuntime::prepare_native_call()函 ...

  10. threejs 贴图动画总结

    引言 在三维可视化中,会涉及到很多动画,其中贴图动画是其中很重要的一种,本文介绍几种贴图动画的思路,供大家一起探讨. 流动动画 流动动画通过设置贴图的repeat属性,并不断改变贴图对象的offset ...