python设计自定义栈类_Python如何自定义模块?Python基础教程,第十讲,自定义模块...

学完此次课程,我能做什么?

通过此次课程,我们将学会如何自定义自己的模块和包,以及如何引用到自己的项目中,从而实现代码的复用。

学习此次课程,需要多久?

5-10分钟

课程内容

什么是Python的标准库?

Python在标准安装中,还带了一组模块他们就是标准库。简单地说就是系统自带了一些方便我们使用的方法,他们统称为标准库。

Python如何自定义模块?

自定义模块与当前代码同目录

自定义模块hello.py 与 1.py同一目录

hello 模块中 定义了一个模块方法

使用模块:

此种方法优点:不需要额外的配置,在同目录下,直接和使用内部模块一样 导入即可使用。

缺点很明显:模块存在的意义在提高代码的复用性,使多个程序可以共享代码,如果每个模块都要单独放在相应的程序下,与出发点有点背道而驰,所以不建议大家使用此方法,了解一下即可。

在Python代码中指定模块位置

首先在/home/dely/github/python/library2目录下定义一个模块run.py

在下面的Demo中使用run 模块中的 hi函数

此方法优点:公共模块可以同一管理,无需放在项目所在目录下,提高的复用性。

缺点是:引用前,需制定模块所在位置。

通过环境变量指定,python模块所在位置

上图中,我已经把PYTHONPATH添加到环境变量中,如何制定环境变量不在这里说了,大家根据自己系统版本去谷歌或者百度吧。

配置好环境变量后,在library目录下写一个fly模块

在下面的Demo中使用fly模块的 hi 函数

优点:代码复用,无需在代码中制定模块路径,无多余代码,和使用标准库一样

缺点:移植性差,不同的电脑需要配置环境变量

以上三种常用方法,大家可以按照自己的需求使用。

考虑一个问题?

按照上面的方法,管理一个小的项目完全没有问题,但是有没有考虑一下,如果我们有1000个不同功能的模块,怎么办?全部放在一个文件夹?

答案肯定是NO.

我们这个时候就需要使用包,来管理我们的模块。

为了演示方便,我直接放在和项目同目录下,先看一下目录结构:

eat 和 say 模块都只有一个hi方法。

重点要注意的图上已经标明了。

import 导入的包,必须使用包.模块名.方法名 使用

from..import 方式导入的包,可以直接使用模块名.方法名 使用

小结

本次课程我们主要学习如何自定义模块,自定义包,以及如何导入自定义的包。使用过程中还会有一些坑,大家在练习的时候,踩踩看吧。

接下来学习什么?

下一课,我们讲学习常见的Python内置模块。只有熟悉了常用的模块和方法,我们在做项目的时候才能游刃有余,灵活使用。

关注公众号,回复 Python基础 下载全部代码+PDF版电子书

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431406.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows.h和winsock2.h包含顺序问题(转)

windows.h和winsock2.h有类型重定义我是知道的,本来就一个库来说没问题,把winsock2放到windows.h前或先定义WIN32_LEAN_AND_MEAN都能解决问题但现的出了问题,自己写的一个库里要用到ws2tcpip,这个头文件第一个包含的头文件就是win…

java中软填空面试题,通过这9个Java面试题,就可以入职华为啦

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼1.Java程序的种类有(BCD )A.类(Class) B.Applet C.Application D.Servlet2.下列说法正确的有( BCD)A. 环境变量可在编译source code时指定B&#x…

红色警戒2修改器原理百科(七)

(十五)科技全开——前方高能,BOOM 其实这一小节,最晚应该在第四篇的十小节来讲述的,这样是按照一条线索来讲的,容易理解和把握笔者修改时的思路,以一点逐渐扩大。由于笔者的一些原因&#xff08…

python两个线程交替打印_三线程按顺序交替打印ABC的四种方法

建立三个线程A、B、C,A线程打印10次字母A,B线程打印10次字母B,C线程打印10次字母C,但是要求三个线程同时运行,并且实现交替打印,即按照ABCABCABC的顺序打印。二、Synchronized同步法1、基本思路使用同步块和wait、noti…

支付宝支付php代码示例,Laravel使用支付宝进行支付的示例代码

/*支付*/public function pay(){header("content-type:text/html;charsetutf8");//echo 1;die;// ******************************************************配置 start*******************************************************************************************…

关于开发中的常用手段(个人建议)

由于最近在一家外包公司 做项目 (团队开发 3个人) 有个朋友一起 我们研究出一套 相对来说 速度和效率都比较高的开发方法。 1. 搭建界面 对于一个程序来说 无疑刚上来就要看原型 看UI 看切图 所以界面是首要做的 那么我来说下做界面的常用方法仅个人看法…

wpf click事件在触摸屏上点击第一次没反应_你的PLC和你的触摸屏为什么总是通讯不上?...

三菱PLC全系列资料免费送啦!想要撩我(点击上方红字,免费领资料)很多师傅有以下这些问题,其实除去厂家自行定义的通讯方式外,我们在做项目的时候最常用的通讯方式,通讯不上无非就是这几个原因是否选择正确通讯协议(modb…

php索引数组相等,php二维数组中子数组的某一键相等,其余键值求和

需要处理的数组Array([0] > Array([uid] > 1[price] > 85.00[earnings] > 40.00)[1] > Array([uid] > 8[price] > 56.00[earnings] > 31.00)[2] > Array([uid] > 15[price] > 56.00[earnings] > 31.00)[3] > Array([uid] > 15[price…

ubuntu 开放端口_Masscan端口扫描工具使用小手册

1Masscan介绍1.1 Masscan简介1) nmap是端口扫描仪的合法王位,而今天仍然是最通用的选择。但对于纯粹的速度也有一些已经超越了它,包括scanrand,unicornscan,zmap,和现在的masscan(https://github.com/robertdavidgraha…

MFC类的结构

1. CObject类,MFC库中绝大部分类的基类,封装了MFC中的最基本机制。 运行时类信息机制/动态创建机制/序列化机制等。。。 2. CCmdtarget - 消息映射机制最基类 3. CWinThread/CWinApp- 应用程序类,负责整个程序的执行流程。 4. CDocment及子类…

php base64安全吗,php base64

场景:PHP 用base64兑现加密解密PHP 用base64实现加密解密php中用base64实现加密解密: base64_encode() 和 base64_decode() 进行加密和解密.语法: string base64_encode ( string data )使用 base64 对 data 进行编码。设计此种编码是为了使二进制数据可以通过…

hdu4277 暴力

hdu4277 暴力 USACO ORZ Time Limit : 5000/1500ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submission(s) : 4 Accepted Submission(s) : 2 Problem DescriptionLike everyone, cows enjoy variety. Their current fancy is new shapes for pastu…

多线程设置操作时间间隔_听说,有位Java程序员学完这59道多线程面试题之后,直接面上阿里...

前言多线程是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。具有这种能力的系统包括对称多处理机、多核心处理器以及芯片级多处理或同时多线程处理器。软件多线程&…

在php中源代码怎么查看,查看PHP Closure的源代码

您可以从PHP获得的是有限的,使用反射您只需获取函数的参数签名以及源代码文件的开始和结束行.我曾经写过一篇博客文章:http://www.metashock.de/2013/05/dump-source-code-of-closure-in-php/ ……它引导我使用反射以下代码:function closure_dump(Closu…

nginx禁止访问目录中可执行文件

某些网站系统需要用户上传图片等文件到某些目录下,难免程序有些漏洞,导致用户上传了php、cgi等等可执行的文件,导致网站陷入非常为难的境地. 此时我们可以通过nginx来禁止用户访问这些目录下的可执行文件。 nginx配置 1234location ~* /(images|cache|media|logs|tm…

svm多分类代码_监督学习——分类算法I

本文是监督学习分类算法的第一部分,简单介绍对样本进行分类的算法,包括判别分析(DA)支持向量机(SVM)随机梯度下降分类(SGD)K近邻分类(KNN)朴素贝叶斯分类(NaiveBayes)判别分析(Discriminant Analysis) 判别分析是基于条件概率的分类方法,可以…

oracle awr报告提取,Oracle AWR报告提取方法

默认情况下,oracle是启用数据库统计收集这项功能(AWR)通过show parameter statistics_level来判断是否启用值为TYPICAL或者ALL表示启用AWR值为BASIC,表示禁用AWR1.当前连接实例的AWR报告提取:?/rdbms/admin/awrrpt以sysdba身份登录。SQL>…

关键词组合工具_SEO学习:如何挖掘行业关键词?关键词挖掘策略和工具推荐

关键词是驱动流量增长的基础!挖掘关键词是SEO工作的重中之重。如何快速挖掘到行业相关的所有关键词?我们一起了解下。本文大纲如下:拓展和筛选网站主词挖掘搜索引擎推荐关键词业务相关词的挖掘同行关键词的挖掘关键词组合拓展1、拓展和筛选网…

oracle em中查看jiob,HTML5 中的 b/strong、i/em 详解

这篇文章主要聊一聊 HTML5 中的 和 ,以及 和 。从页面显示效果来看,被 和 包围的文字将会被加粗,而被 和 包围的文字将以斜体的形式呈现。那大家可能就会疑惑了,既然效果一样,那为什么还要重复定义标签呢&#x…

活体检测python_活体检测很复杂?仅使用opencv就能实现!(附源码)!

摘要: 活体检测在各行各业应用比较广泛,如何实现一个活体检测系统呢?早期实现很困难,现在仅使用opencv即可实现,快来尝试一下吧。什么是活体检测,为什么需要它?随着时代的发展,人脸识…