一、模块

定义:在python中,一个 .py 文件就称为一个模块

使用模块的好处:最大的好处就是提高了代码的可维护性

分类(三种):

  • python标准库
  • 第三方模块
  • 应用程序自定义模块

模块导入方法:

#cal.py
def add(x,y)
return x + y
def sub(x,y)
return x - y

1. import 语句

import module1[, module2[,.... moduleN]]

#举例:

#test.py

import cal
print(cal.add(3,5))
print(cal.sub(3,5))

注意:
import 做了两件事情:一是运行cal函数;第二是引入变量名

2. from...import 语句

from modulename import name1[, name2[, ... nameN]]

注意:
这个声明不会把整个modulename模块导入到当前的命名空间中,
只会将它里面的name1或者name2单独引入到执行这个声明的模块的全局符号表。

#举例:

#test.py

from cal import add
from cal import sub
print(add(3,5))
print(sub(3,5))

3. from...import*语句

from modulename import*
#举例:
#test.py

from cal import*
print(add(3,5))
print(sub(3,5))

(*代表一切,但是不推荐这种模块导入方式)

关于路径的补充:

当我们使用import语句时,python解释器是怎么样找到对应的文件的?
答案是解释器有自己的搜索路径,存在 sys.path里。

import sys
print(sys.path)

#存放的是执行文件的路径

二、包(package)

1. 基本概念

为了避免模块名相同带来的冲突,python引入按照目录组织模块的方法,称为包(package)

每个包目录下面都会有有个 __init__.py 的文件,这是区别普通目录的。如果没有__init__.py ,则不是一个包

__init__.py 可以是空文件,也可以有python代码,因为__init__.py本身就是一个模块,而它的模块名就是对应包的名字

引入包以后,只要顶层的包名不与别人冲突,那所有模块都不会与别人冲突。

2. 包之间多层点的调用

举例:

#main.py
def add(x, y):
return x + y
def sub(x, y):
return x - y

调用方式一:

#test.py
from my_module.web1.web2.web3.main import sub
print(sub(2,5))

调用方式二:

#test.py
from my_module.web1.web2.web3 import main
print(main.add(2,5))

注意:包只要被调用,就是执行该包的 __init__.py 文件

Python(28)---模块和包的基本概念的更多相关文章

  1. 第10章 Python的模块和包

    前面几章介绍的Python基础知识,相关案例都是以单源代码文件为例来说明的,这种单源代码文件在Python中就是模块,每个模块文件都可以被其他应用导入,Python正是通过模块导入技术来实现很灵活的功 ...

  2. 一文搞懂 Python 的模块和包,在实战中的最佳实践

    最近公司有个项目,我需要写个小爬虫,将爬取到的数据进行统计分析.首先确定用 Python 写,其次不想用 Scrapy,因为要爬取的数据量和频率都不高,没必要上爬虫框架.于是,就自己搭了一个项目,通过 ...

  3. Python之模块和包导入

    Python之模块和包导入 模块导入: 1.创建名称空间,用来存放模块XX.py中定义的名字 2.基于创建的名称空间来执行XX.py. 3.创建名字XX.py指向该名称空间,XX.名字的操作,都是以X ...

  4. python中模块,包,库的概念

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  5. (Python )模块、包

    本节开始学习模块的相关知识,主要包括模块的编译,模块的搜索路径.包等知识 1.模块 如果我们直接在解释器中编写python,当我们关掉解释器后,再进去.我们之前编写的代码都丢失了.因此,我们需要将我们 ...

  6. Python 基金会 —— 模块和包简介

    一.模块(Module) 1.模块的作用      在交互模式下输出的变量和函数定义,一旦终端重新启动后,这些定义就都不存在了,为了持久保存这些变量.函数等的定义,Python中引入了模块(Modul ...

  7. python中模块,包,库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  8. Python之模块和包学习

    模块简介 python是由一系列的模块组成的,每个模块就是一个py为后缀的文件,同时模块也是一个命名空间,从而避免了变量名称冲突的问题.模块我们就可以理解为lib库,如果需要使用某个模块中的函数或对象 ...

  9. Python中 模块、包、库

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

随机推荐

  1. 2018.06.27Firing(最大权闭合子图)

    Firing Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 11558 Accepted: 3494 Description ...

  2. git 如何更改某个提交内容/如何把当前改动追加到某次commit上? git rebase

    原文地址        http://www.jianshu.com/p/8d666830e826 [自己总结] 0, git diff git diff a b 是以a为基准,把b和a的区别展示出来 ...

  3. poj 1094 Sorting It All Out 拓补排序

    Description An ascending sorted sequence of distinct values is one in which some form of a less-than ...

  4. 1.2.1继承Thread类

    实现多线程的方法有2种:方法一是继承Thread,方法二是实现Runnerable接口 使用继承Thread类的方法创建多线程的时候,最大的局限性就是不支持多继承,因为java语言的特点就是单继承,因 ...

  5. 【python 字典、json】python字典和Json的相互转换

    [python 字典.json]python字典和Json的相互转换 dump/dumps字典转换成json load/loadsjson转化成字典 dumps.loads直接输出字符 dump.lo ...

  6. js-实现双色球功能

    <!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8&qu ...

  7. bootstrap1.1

    <!DOCTYPE html>   <html>   <head>   <meta charset="utf-8" />   < ...

  8. firefox浏览器testclient测试接口

  9. Delphi XE3写DLL,用Delphi7调用,报错!

    http://bbs.csdn.net/topics/390870532 用delphi xe3写的DLL,delphi7调用,参数都是PAnsiChar,DLL里的函数接收delphi7传的入参,没 ...

  10. hiho 第二周

    Trie树,第一次写,简单的建树+搜索 它的思路hiho上讲得很清楚,good~ #include<iostream> #include<string> using names ...