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,然后是一些模块文件和 ...
随机推荐
- 精读《Serverless 给前端带来了什么》
1. 引言 Serverless 是一种 "无服务器架构",让用户无需关心程序运行环境.资源及数量,只要将精力 Focus 到业务逻辑上的技术. 现在公司已经实现 DevOps 化 ...
- NSCTF web200
Topic Link http://ctf5.shiyanbar.com/web/web200.jpg 1) 分析代码可知a1zLbgQsCESEIqRLwuQAyMwLyq2L5VwBxqGA3RQ ...
- window环境下使用filezilla server搭建ftp服务器
前言 在做项目的时候,需要提供ftp服务,开始的时候使用微软自动的iss上的ftp服务,一段时间后发现无法自定义用户,只能使用系统的用户,使用起来很不方便,在权限管理方面也是不太好.所以换用了file ...
- 记录:C++类内存分布(虚继承与虚函数)
工具:VS2013 先说一下VS环境下查看类内存分布的方法: 先选择左侧的C/C++->命令行,然后在其他选项这里写上/d1 reportAllClassLayout,它可以看到所有相关类的内存 ...
- [PHP] 抽象类abstract的回顾
1.abstract定义为抽象的类不能被实例化. 2.它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的. 3.被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实 ...
- C# 如何添加PPT背景(纯色背景、渐变色背景、图片背景)
我们在创建Powerpoint文档时,系统默认的幻灯片是空白背景的,很多时候我们需要自定义幻灯片背景,以达到美观的文档效果.在下面的示例中将介绍给PowerPoint幻灯片设置背景的方法,主要包含以下 ...
- 我的第三个开源库GuaJiangViewDemo——中文文档
GuaJiangViewDemo 欢迎Star 一个可以简单的刮刮奖View的封装 测试图 使用 1.在根目录上添加 maven { url 'https://jitpack.io' } 2.添加依赖 ...
- 【Spring】Autowired原理及与Resource注解区别
Autowired注解 Autowired顾名思义,表示自动注入,如下是Autowired注解的源代码: @Target({ElementType.CONSTRUCTOR, ElementType.M ...
- Django的urls.py加载静态资源图片,TypeError: view must be a callable or a list/tuple in the case of include().
Django的urls.py加载静态资源图片,TypeError: view must be a callable or a list/tuple in the case of include(). ...
- Netty学习笔记(三) 自定义编码器
编写一个网络应用程序需要实现某种编解码器,编解码器的作用就是讲原始字节数据与自定义的消息对象进行互转.网络中都是以字节码的数据形式来传输数据的,服务器编码数据后发送到客户端,客户端需要对数据进行解码, ...