23 python初学(模块和包)
模块(module):
好处: 提高代码可维护性 + 编写代码不必从零开始
模块有三种: python标准库、第三方模块、应用程序自定义模块
另外,使用模块还可以避免函数名和变量名冲突,相同名字的函数和变量完全可以分别存在不同的模块中。因此,我们在自己编写模块时,不必考虑名字会与其他模块冲突,但是也要注意,尽量不要与内置函数名字冲突。
搜索路径:sys.path
现在有 calculate.py文件,内有 add()、sub()方法
模块导入方法:
- 导入整个模块:
import calculate,time (多个模块使用 , 分隔开)
print(calculate.add(1, 2))
2. 导入模块内的多个方法:
from calculate import add,sub
print(add(3, 2))
import calculate # 解释器通过搜索路径找到 calculate.py 后,将 calculate = calculate.py all code
import sys
需要使用 calculate 来调用add方法
print(calculate.add(1, 2))
# 搜索路径
print(sys.path)
from calculate import *: # 此种情况遇到的问题是 calculate 中的 add 方法与本文件中的 add 方法有重复时,会按照顺序来决定使用哪一个。因此不建议使用此种方式
from calculate import add as plus: # 这样就不能再使用 add 方法,而是使用 plus 方法
from calculate import add, minus
# 此时不能再使用 calculate 来调用add方法,他并不是一个可以直接拿到的变量了。
print(add(3, 2)) from calculate import add as plus
print(plus(3, 3))
- 从包 (web) 中导入模块:
- 如果包和文件在同一级目录: from web import logger (不能 import web.logger)
- 包 web 和文件在同一目录,web下还有包 web2,web2 下有文件logger:
- 如果想导入 web.web2 下的模块 logger 导入 mylogger 方法:
- from web.web2.logger import mylogger
- 导入包: import web # 这句话执行了包 web 下的 _init_ 模块
# from web import logger # 从同级包导入模块
import web # 导入包,执行了_init_模块
print(web.main.x) #报错AttributeError: module 'web' has no attribute 'main'
包:模块使用来组织函数的,包是用来组织模块的;
包下面有 _init_ 文件
目录结构:
bin(入口):_init_.py 、 bin.py
module(主逻辑):_init_.py 、 main.py 、logger.py
conf(配置):
# 在被调用时,不会编译执行此段代码
if __name__ == “__main__”:
序列化:
json:
pickle:
shelve:
xml:
标签、属性: <country name = ‘panama’> </country>
23 python初学(模块和包)的更多相关文章
- Python之模块和包导入
Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...
- 一文搞懂 Python 的模块和包,在实战中的最佳实践
最近公司有个项目,我需要写个小爬虫,将爬取到的数据进行统计分析.首先确定用 Python 写,其次不想用 Scrapy,因为要爬取的数据量和频率都不高,没必要上爬虫框架.于是,就自己搭了一个项目,通过 ...
- python基础-------模块与包(一)
模块与包 Python中的py文件我们拿来调用的为之模块:主要有内置模块(Python解释器自带),第三方模块(别的开发者开发的),自定义模块. 目前我们学习的是内置模块与第三方模块. 通过impor ...
- Python之模块和包
一.模块 1.什么是模块? 常见的场景:一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1 使用python编 ...
- 《Python》模块和包
一.模块 1.什么是模块: 一个模块就是一个包含了Python定义和声明的文件,文件名就是模块名字加上.py的后缀. 但其实import加载的模块分为四个通用类别: 1.使用Python编写的代码(. ...
- Python之模块和包(Day21)
一.Python模块 Python模块(module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句. 模块让你能够有逻辑的组织你的Python代码段 把相关的代 ...
- python 深入模块和包
模块可以包含可执行语句以及函数的定义. 这些语句通常用于初始化模块. 它们只在 第一次 导入时执行.只在第一次导入的时候执行,第一次.妈蛋的第一次...后面再次导入就不执行了. [1](如果文件以脚本 ...
- (Python )模块、包
本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...
- Python 基金会 —— 模块和包简介
一.模块(Module) 1.模块的作用 在交互模式下输出的变量和函数定义,一旦终端重新启动后,这些定义就都不存在了,为了持久保存这些变量.函数等的定义,Python中引入了模块(Modul ...
- python中模块,包,库的概念
模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...
随机推荐
- 阿里云Ubuntu安装图形界面与中文语言包
图形界面: http://blog.csdn.net/qq_37608398/article/details/78155568?locationNum=9&fps=1 安装中文: http:/ ...
- C++STL模板库序列容器之deque
目录 一丶队列容器deque简介 二丶使用代码演示 一丶队列容器deque简介 deque底层跟vector一样,都是数组维护.不同的是可以操作头部. 二丶使用代码演示 #define _CRT_SE ...
- 监控mysql
Mysql服务器监控 管理MySql服务器属于应用程序监控范畴.这是因为绝大多数性能参数是有MySql软件产生的,而不属于主操作系统的一部分. 如当前所提到的,应该总是先监控基础操作系统,然后监控My ...
- 强大的jupyter,python开发者的福音
jupyter是一种交互式计算和开发环境的笔记,ipython命令行比原生的python命令行更加友好和高效,还可以运行web版的界面,支持多语言,输出图形.音频.视频等功能. 一.安装 pip3 i ...
- Joda-Time开源库
Joda-Time是一个面向 Java™ 平台的易于使用的开源时间日期库. 依赖 <dependency> <groupId>joda-time</groupId> ...
- webpack4.0各个击破(2)—— CSS篇
webpack作为前端最火的构建工具,是前端自动化工具链最重要的部分,使用门槛较高.本系列是笔者自己的学习记录,比较基础,希望通过问题 + 解决方式的模式,以前端构建中遇到的具体需求为出发点,学习we ...
- 第一册:lesson 101。
原文: A card from Jimmy Read Jimmy's card to me please,Penny. I have just arrive in Scotland and I'm s ...
- C# 如何解决 引用的两个同名同版本的DLL冲突
离职后来到现在这家公司,在这几天接到一个项目要求是要通过淘宝聚石塔API来抓取公司的订单流水.按理说这项任务不算很难,但是,你也知道,壮士出征往往死在离出发地不远的地方.现在我们来研究一下为什么会导致 ...
- MySQL 笔记整理(1) --基础架构,一条SQL查询语句如何执行
最近在学习林晓斌(丁奇)老师的<MySQL实战45讲>,受益匪浅,做一些笔记整理一下,帮助学习.如果有小伙伴感兴趣的话推荐原版课程,很不错. 1) --基础架构,一条SQL查询语句如何执行 ...
- Maven(十四)Maven 继承
以Junit为例 由于junit的依赖的范围为test,所以在每一个项目中都必须配置一个junit. 为了统一管理方便,可以单独创建一个项目用来进行**统一管理**junit的版本 即在子项目中不设置 ...