常用模块【一】模块引用与查找路径

模块的概念

在计算机的程序开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。

为了编写可维护的代码,我们把很多函数分组,分别放在不同的文件里,这样每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式,

在python中一个.py文件就称之为一个模块(module)

使用模块有什么好处???

最大的好处就是大大提高了代码的可维护性;

其次代码编写不必从零开始,当一个模块编写完毕,就可以被其他地方引用,我们在编写程序的时候,也经常引用其他模块,包括python内置的模块和来自第三方的模块;

so,模块一共三种:

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

模块导入方法

1、import语句

  • 执行对应文件
  • 引入变量名

#定义一个模块(模块内只写功能函数)test


1

2

3

4

5

6

# 自定义的函数

def add(x,y):

    return + y

def sub(a,b):

    return - b

#调用test模块


1

2

import test  #导入定义好的test模块

print(test.sub(9,1))  #调用模块内部的函数

2、from+模块名+import+函数名 #直接调用模块内的指定函数


1

from test import *        *代表调用所有(这种方法不推荐,容易和逻辑函数冲突)


1

2

from test import add  #直接导入模块内指定的功能函数

print(add(7,5)) #调用

 3、文件路径

import sys
print(sys.path) # 会把执行文件的路径添加到环境变量里,所有import的东西都会在这个路径里去拿,能找到就拿找不到就拉到;

"""
[‘D:\\Python\\小游戏\\demo‘, ‘D:\\Python\\小游戏\\demo‘, ‘C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\python36.zip‘, ‘C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\DLLs‘, ‘C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib‘, ‘C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36‘, ‘C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36\\lib\\site-packages‘]
"""

若执行文件(bin)与模块文件(test)不在同一路径下如何导入模块:

执行文件bin,想要调用test模块内的函数:

模块test:

执行文件调用多层模块

多层路径用点来连接,执行文件bin调用web2里的cal模块和调用cal模块里的函数;

原文地址:https://www.cnblogs.com/youxiu123/p/11480720.html

时间: 2024-11-08 13:26:29

常用模块【一】模块引用与查找路径的相关文章

Python的模块引用和查找路径

模块间相互独立相互引用是任何一种编程语言的基础能力.对于"模块"这个词在各种编程语言中或许是不同的,但我们可以简单认为一个程序文件是一个模块,文件里包含了类或者方法的定义.对于编译型的语言,比如C#中的一个.cs文件,Java中的一个.java或者编译后的.class文件可以认为是一个模块(但常常不表述为模块):对于解释型的语言会更加直观些,比如PHP的.php文件,在Python中就是.py文件可以认为是一个模块.在"模块"之上有"包",主要是

Django中常用的那些模块路径

Django中常用的那些模块路径 from django.shortcuts import HttpResponse, render, redirect from django import template from django.conf.urls import url from django.urls import path from app01 import views from django.conf.urls import include, url from django.urls

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib subprocess logging re正则

python 常用模块 time random os模块 sys模块 json & pickle shelve模块 xml模块 configparser hashlib  subprocess logging re正则 转自老男孩老师Yuan:http://www.cnblogs.com/yuanchenqi/articles/5732581.html 模块&包(* * * * *) 模块(modue)的概念: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,

Python笔记第3章,模块和模块的常用方法,函数式编程yield,三元运算Lambda表达式,内置涵数,常用模块

<--目录--> 模块和模块的常用方法 函数式编程 yield 三元运算 Lambda表达式 内置涵数 常用模块 [模块和模块的常用方法]至关重要的__init__.py    #包一定要有这个__init__.py文件,他才是包,这样才能通过form 包名 import 模块名(.py文件名)来去引用这个包的某个模块的某个函数功能 判断是否为主文件:__name__ if __name__ == '__main__' 当前文件路径: __file__ 当前文件描述: __doc__ 1)if

[自动化] 部署Ansible服务及其常用的命令模块

Ansible简介: Ansible基于Python开发,默认通过SSH协议进行远程命令执行或下发配置,无需部署任何客户端代理软件,可同时支持多台主机进行管理.ansible是基于模块工作的,本身没有批量部署的能力,真正具有批量部署的是ansible所运行的模块,能够实现批量运行命令.部署程序.配置系统等功能. Ansible的基本架构主要包括: (1)Ansible core核心引擎.(2)Host inventory 主机清单:用来定义Ansible管理的主机,默认是在Ansible配置文件

Python 常用模块(1) -- collections模块,time模块,random模块,os模块,sys模块

主要内容: 一. 模块的简单认识 二. collections模块 三. time时间模块 四. random模块 五. os模块 六. sys模块 一. 模块的简单认识 模块: 模块就是把装有特定功能的代码进行归类的结果引入模块的方式: (1) import 模块 (2) from 位置 import 模块 二. collections模块 collections模块主要封装了一些关于集合类的相关操作. 如我们学过的iterable,iterator等等.除此以外, collections还提

python模块部分----模块、包、常用模块

0.来源:https://www.cnblogs.com/jin-xin/articles/9987155.html 1.导入模块 1.1模块就是一个python文件,模块名是文件名 1.2导入模块的执行步骤: 先看有没有导入过,有的话不管,没有的话下一步 在sys.path中找到模块(除了内置Python的路径,还有当前执行文件路径) 创建新模块的命名空间,执行一遍模块代码,初始化模块 将模块导入进来 1.3import(导入模块) 直接导入整个模块,模块中的变量全部在他自己的命名空间中,不可

Python模块的交叉引用问题分析

实际项目中遇到python模块相互引用问题,查资料,说是通过import局部导入的方式可以避免错误,资料如附录所述. 但更改后测试还是会出错,很疑惑!? 如果哪位读者有好的解决方法,敬请留言说明,谢谢. 所以,最好的方法是不进行交叉引用,如果需要就单独分一个模块出来. 附录:Python模块的交叉引用问题解读:How can I have modules that mutually import each other? 有下面两个文件相互引用,Python解释器报错. foo.py: from

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以