python基础14 ---函数模块5(模块和包)

模块与包

一、模块

  1、模块是怎么诞生的。

     在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到  不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。在Python中,一个.py文件就称之为一个模块(Module)。

  2、模块的作用。

    提高了代码的可维护性。其次是编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。另外,使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

  3、模块的分类

    1.系统内置模块,即python标准库

    2.第三方模块,即他人编写好了的模块,直接下载下来用就可以了(scary,requests等)

    3.应用程序自定义模块,即编程人员自己编写的模块。

  4、模块的导入方式。

    1.import 语句

      格式:import 模块名

        注释:模块导入时如果是内置模块会直接被导入,如果是第三方模块或者是自定义模块则会根据sys.path所给的路径进行查找。

           一个模块可以在当前位置import多次,但只有第一次导入会执行源文件内的代码,原因是:第一次导入就会将模块包含的内容统统加载到

内存了,以后在当前文件位置的导入都是指向内存中已有的模块

    2.from…import 语句

      格式:import  模块名  import 变量名

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

    3.补充.

      当import一个模块时,首先会立刻创建一个新的名称空间,用来存放该模块中定义的所有变量的名字;然后会在该名称空间内执行foo.py内所有的代码,

最后需要知道的是import关键字就是定义了一个名字,只不过此刻我们用import定义的是一个模块名字foo,该名字就是指向foo.py的名称空间,而foo.的方式

就是从该名称空间里找名字,可以使用foo.__dict__来查看这些名字。

     注释:import的两个过程:  创建新的名称空间  {名字:对象和}执行被调用的模块 (第二次不会被执行)。

二、包

  1、为什么会有包。

    如果不同的人编写的模块名相同怎么办?为了避免模块名冲突,Python又引入了按目录来组织模块的方法,称为包(Package),引入了包以后,只要顶层的包

名不与别人冲突,那所有模块都不会与别人冲突。

  2、什么是包?

    包的作用和文件夹的作用相同,只不过与文件夹的区别是新建一个包会自动产生一个__init__.py的文件,该文件可以写内容也可以不写内容。__init__.py的

模块名就死对应的包名,意思就死说当你直接调用这个包的时候实际上是调用包下面init里的东西。

  3、如何调用包内模块

    1.如果调用模块和被调用模块在同一个包内,俩模块是属于亲兄弟关系那么这俩模块可直接被调用。

    2.如果调用模块和被调用模块在同一个包内,俩模块是属于亲叔侄关系,那么需要以from 包名 import  模块名 来调用该模块

    3.如果调用模块和被调用模块在同一个包内,俩模块是属于表叔侄关系,那么久需要调用os模块吧被调用包的路径加到sys.path中去。

    eg:import os,sys  #调用模块
     BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))#调用文件路径
     print(BASE_DIR)
     sys.path.insert(0,BASE_DIR)#添加到搜索路径

时间: 2024-10-29 04:07:14

python基础14 ---函数模块5(模块和包)的相关文章

Python自动化开发课堂笔记【Day04】 - Python基础(函数补充,模块,包)

表达式形式的yield yield的语句形式: yield 1yield的表达式形式: x=yield 1 x=yield 2 g.send('1111') #先把1111传给yield,由yield赋值给x,然后再往下执行,直到再次碰到yield,然后把yield后的返回值返回 协程函数示例 1 def gen(func): 2 def wrapper(*args,**kwargs): 3 res = func(*args,**kwargs) 4 next(res) #相当于next(g)或者

python基础——sorted()函数

python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来. Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] 此外,sorted()函数也是一个

Python基础07 函数

Python基础07 函数 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 函数的定义 首先,我们要定义一个函数, 以说明这个函数的功能. def square_sum(a,b): c = a**2 + b**2 return c 这个函数的功能是求两个数的平方和. 首先

python基础——匿名函数及递归函数

python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 2 匿名函数举例 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突.此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数: >>> f = lam

python基础-匿名函数、内置函数、正则表达式、模块

1. 匿名函数 1.1 有名函数 有名函数:定义了一个函数名,函数名指向内存地址:通过函数名进行访问.函数名加括号就可以运行有名函数,例如:func() def func(x, y, z = 1): return x + y + z print(func(1,5,2)) 1.2 匿名函数 匿名函数:没有名字的函数,定义的时候不需要函数名:定义匿名函数的关键字是:lambda 特点: 1.没有函数名 2.函数自带return 应用场景: 1.应用于一次性的地方 2.临时使用 salaries={

python基础13 ---函数模块3(正则表达式)

正则表达式 一.正则表达式的本质 1.正则表达式的本质(或 RE)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 2.正则表达式简介 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分 强大.得益于这一点,在提供了正则表达式的语言里,正则表达式的语法都是一样的

Python基础(十)re模块

Python基础阶段快到一段落,下面会陆续来介绍python面向对象的编程,今天主要是补充几个知识点,下面开始今天的内容. 一.反射 反射的作用就是列出对象的所有属性和方法,反射就是告诉我们,这个对象到底是什么,提供了什么功能, 可以伪造Web框架的路由系统. 举个例子: 1 2 >>> dir(json) ['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__',

Python 基础 - Day 5 Learning Note - 模块 之 标准库:random 模块

常用操作 import random # 随机浮点数 print(random.random()) # 0.1706000097536472 # 返回生成一个0到1的随机浮点数: 0<= n <= 1 print(random.uniform(1,8)) # 4.060336609768256 # 函数语法: random.uniform(a,b) # 返回生成以a为下限,b为上限的随机浮点数: a<=n<=b # 随机整数 print(random.randint(1,10))

python基础之正则表达式和re模块

正则表达式 就其本质而言,正则表达式(或 re)是一种小型的.高度专业化的编程语言,(在Python中)它内嵌在Python中,并通过 re 模块实现.正则表达式模式被编译成一系列的字节码,然后由用 C 编写的匹配引擎执行. 字符匹配(普通字符,元字符): 1 普通字符(完全匹配):大多数字符和字母都会和自身匹配 1 >>> import re 2 >>> res='hello world good morning' 3 >>> re.findall(