初识python: 模块定义及调用
一、定义
模块:用来从逻辑上组织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: 模块定义及调用的更多相关文章
- Python模块定义和使用
Python中所谓的模块就是一个Python文件,一个abc.py的文件就是一个名字叫abc的模块,一个xyz.py的文件就是一个名字叫xyz的模块.模块由代码.函数或类组成.编程中使用模块不仅可以提 ...
- python 函数定义及调用
1.什么是函数? 在程序中,函数就是具备某一功能的工具,事先将工具准备好即函数的定义:遇到应用场景拿来就用即函数的调用:函数必须遵循先定义后调用的原则 2.为什么要用函数 不用函数的问题是: 程序冗长 ...
- Python 模块定义、导入、优化详解
一.定义 模块:用来从逻辑上组织 python 代码(变量,函数,类, 逻辑:实现一个功能),本质就是 .py 结尾的 python文件(例如:test.py文件,对应的模块名:test) 包:用来从 ...
- python 模块定义导入
1.定义模块:用来从逻辑上组织python代码(变量.函数.类.逻辑:实现一个功能),本质就是:.py结尾的python文件(文件名:test.py,对应的模块名:test)包:本质就是一个目录(必须 ...
- 初识python 函数(定义,传参,返回值)
python基础(二): 菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍 函数: 定义一个函数: 你可以定义一个由自己想要功能的函数,以下是简单的规则: def fun(arg): pa ...
- 3-12 Python函数定义与调用
Python 函数 函数概念 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.如print() range()函数,但你也可以自己创建函 ...
- python模块--如何相互调用自己写的模块
一.模块相互调用同级目录调用时的两种方法 import module print(module.add(3,8)) from module import add print(add(2,4)) 同级目 ...
- 8.模块定义导入优化time datetime内置模块
1.模块(module)的定义:本质就是.py的python文件用来从逻辑上组织python代码(变量\函数\类\逻辑:实现一个功能)包(package)的定义:用来从逻辑上组织模块的,本质就是一个文 ...
- Python模块初识
目录 一 模块初识 二 模块分类 三 导入模块 四 Python文件的两种用途 五 模板查找顺序 六 软件开发目录规范 一.模块初识 模块是自我包含并且有组织的代码片段,是一系列功能的集合体,一个py ...
随机推荐
- HTML DOM 对象 - 方法和属性
一些常用的 HTML DOM 方法: getElementById(id) - 获取带有指定 id 的节点(元素) appendChild(node) - 插入新的子节点(元素) removeChil ...
- 注册页面的servlet
package cn.itcast.travel.web.servlet;import cn.itcast.travel.domain.ResultInfo;import cn.itcast.trav ...
- Nginx模块之limit_conn & limit_req
limit_conn模块 生效阶段:NGX_HTTP_PREACCESS_PHASE阶段 生效范围:全部worker进程(基于共享内存),进入preaccess阶段前不生效,限制的有效性取决于key的 ...
- Solon 1.6.6 发布,细节打磨
Solon 已有120个生态扩展插件,此次更新主要为细节打磨: 增加 @Inject("ds1") BeanWrap bw 模式注入 @Configuration public c ...
- CF31B Sysadmin Bob 题解
Content 给定一个字符串 \(s\),请将其分解为诸如 \(\texttt{xx@xx}\) 的子串,并将分解后的所有子串输出,或者说不存在这样的方案. 数据范围:\(1\leqslant|s| ...
- 云主机tracert外网无返回需在安全组入方向加ICMP Time Exceeded TTLexpired in transit
- mysql 禁止自动提交设置
mysql禁止自动提交的设置, 在my.ini文件里加上如下的一句便可 init_connect='SET autocommit=0' 但是有个问题,对root用户进行autocommit变量的查询, ...
- IE上的兼容性调整问题烦死啦
IE上的兼容性调整问题烦死啦 好像还得把此代码放到第一行才起作用.
- loger4j时间一长,就不向数据库里写日志啦,然而重新启动工程后就可以再次向数据库写日志,好奇怪
loger4j时间一长,就不向数据库里写日志啦,然而重新启动工程后就可以再次向数据库写日志,好奇怪
- WPF DataGrid OxyPlot 卡顿优化
不是优化,我是想用这个标题吸引遇到相同问题的同学过来看看. UI如下,左边DataGrid有7列,右边OxyPlot显示折线图 列表4000+数据,折线图4000+个点,页面卡的用不了. 体现就是列表 ...