众所周知,Python内建了许多函数模块,并且我们可能还会安装许多第三方模块等等。
在平南等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站制作、成都网站建设 网站设计制作按需定制设计,公司网站建设,企业网站建设,品牌网站制作,全网整合营销推广,成都外贸网站制作,平南网站建设费用合理。
下面以getpass为例查看其源代码。
1.help(getpass)
输入该命令找到file路径,并且可以查看其其提供的功能。
2.利用getpass.__file__查看位置
最后找到该文件,用记事本或其他编辑器打开即可。
3.PyCharm编辑器
在该类或方法上按住“ctr+鼠标左键”可以快速查看源代码。
4.dir(对象名)
该方法可以快速查看有哪些方法。
想要查看每个功能的解释,用help(type(对象名))
python学习网,大量的免费python视频教程,欢迎在线学习!
模块是一个概念,它包含 1~N 个文件,如果文件是 Python 代码文件(就是.py 结尾的文件),那每个文件中可以包含函数,类等内容。
在公司工作,很多项目都是协作开发来完成,一个项目后面可能存在很多工程师,为了开发方便,每个人负责的功能函数或者类都尽量封装在一个 模块 中,模块英文请记住 module ,有的地方叫做 库 ,也有的地方叫做 包(package) ,对于现阶段的你来说,当成一样的内容就好。
互联网上存在大量的开源模块,这些模块最大的优势就是免费,很多时候使用这些模块能极大的提高编码效率,这也是很多人喜欢 Python 的原因之一。
模块学习的过程,不能按照语法结构来学习,它是一种抽象的知识,是一种代码的设计方式。例如将写好的函授放到模块中。
接下来就将上面的函数整合到一个模块中去,建立一个新的文件 stir_fry.py 然后将两个函数复制到新的文件中。
stir_fry.py 文件包含那两个函数
好了,完成任务,一个模块创建完毕了,这个 stir_fry.py 文件就是一个模块。
你现在脑中肯定出现黑人问号脸了,What?这就完了。是的,完了,一个低配模块完成。
下面就可以拿着这个模块给别人使用去了。会写模块成为大佬之后,就可以给新入行的菜鸟指点江山,写模块了。
在另一个文件中,可以通过 import 模块名 导入一个模块,例如导入刚才创建的 stir_fry 模块。
注意要新建一个文件,文件名随意但是不要与模块同名。
如果想要使用模块中的函数,只需要参考下述语法格式即可。
通过 stir_fry 调用模块中的函数。
当通过 import stir_fry 导入模块之后,该模块内的所有函数都一次性导入到新文件中了。
如果不想导入模块的所有函数,而只导入某个函数,使用一下语法可以解决该问题。
修改上一节案例:
直接导入模块中的函数,使用时不需要通过 模块名. 的方式调用,直接书写函数名即可。
导入模块中多个函数
语法格式如下:
导入模块所有函数
语法格式如下:
刚才通过模块导入函数你应该发现一个潜在的问题,就是函数名称太长怎么办,除了名称太长,还存在一种情况,模块中的函数名称与当前文件中函数的名称,存在重名的风险。此时可以学习一个新的内容,通过 as 给模块导入进来的函数起个别名,然后在该文件都使用别名进行编码。
语法格式如下:
上述内容应用到案例中如下述代码:
as 别名也可直接作用于模块,语法格式如下:
随着程序设计变的越来越复杂,只把函数放到模块中已经不能满足要求了,需要将更高级的内容放到模块中,也就是类。
首先在 dog_module.py 文件中定义一个类。
此时的 dog_module 就是模块的名称,而在该模块中只有一个类 Dog ,也可以在该模块中多创建几个类,例如:
与导入模块的函数部分知识一样,如果希望导入一个模块中的类,可以直接通过下述语法格式实现:
使用模块中的类,语法格式如下:
具体代码不在演示,自行完成吧。
导入模块的类和导入模块的的函数用法是一致的。
新建一个 demo.py 文件,在该文件导入 dog_module 模块中的类。
从模块中导入多个类
该方式与函数的导入也一致,语法格式如下:
导入模块中所有类
学到这里,你应该已经发现导入模块中的函数与导入模块中的类,从代码编写的角度几乎看不出区别,对比着学习即可。
导入类的时候也可以应用别名,同样使用 as 语法。
学习到这里你对模块是什么,模块怎么用已经有了一个基本认知,接下来先不用自己写一个特别牛的模块,我们先把一些常见的模块应用起来。
通过随机数模块可以获取到一个数字,它的使用场景非常广,例如 游戏 相关开发、验证码相关、抽奖相关,学习了随机数之后可以完成一些非常不错的小案例。
randint 方法
导入随机数模块之后,可以通过 randint 方法随机生成一个整数,例如下述代码:
反复运行代码会得到一个 1~10 之间的数字,由此可以 randint 方法中的参数含义。
choice 方法
通过 choice 方法可以配合列表实现一些效果,choice 可以随机返回列表中的一个元素。
如果你想知道 choice 方法的具体用法,还记得怎么查询吗?
shuffle 方法
该方法可以将一个列表的顺序打乱。
简单挑选了 random 模块中的三个方法做为说明,对于模块的学习,后面将为每个模块单开一篇文章书写。
时间模块是 Python 中非常重要的一个内置模块,很多场景都离不开它,内置模块就是 Python 安装好之后自带的模块。
time 方法
time 模块主要用于操作时间,该方法中存在一个 time 对象,使用 time 方法之后,可以获取从 1970年1月1日 00:00:00 到现在的秒数,很多地方会称作时间戳。
输出内容:
sleep 方法
该方法可以让程序暂停,该方法的参数是的单位是 秒 。
使用语法格式为:
asctime 与 localtime 方法
以上两个方法都可以返回当前系统时间,只是展示的形式不同。
time 模块涉及的方法先只涉及这么多,后续滚雪球学习过程中在继续补充。
Python 还内置了很多模块,例如 sys 模块、os 模块、json 模块、pickle 模块、shelve 模块、xml 模块、re 模块、logging 模块等等内容,后续都将逐步学习到,有可能需要分开专题给大家讲解。
Python 模块,快速编码的一种途径,很多时候第三方模块可以帮你解决大多数常见编码场景,让你在编码的道路上飞奔。
它是内置函数。build-in,应该是C语言的。用的应该是 c的library
在python2.73.源码中
有这样一句。pymath.h:extern double round(double);
在pymath.c中定义如下:
#ifndef HAVE_ROUND
double
round(double x)
{
double absx, y;
absx = fabs(x);
y = floor(absx);
if (absx - y = 0.5)
y += 1.0;
return copysign(y, x);
}
按Windows+R键,在运行里输入notepad,然后将后缀名为.py的python源文件拖进notepad(词本)程序里就可以看到了。
如果要好一点的效果,就去下一个 notepad++ ,这个软件查看各种代码效果都很好
也可以下一个Uedit
如果想运行python脚本,就去下一个python安装
python自带一个IDE,可以查看、编辑与调试python代码,安装python之后可以右击后缀为.py的文件,选择Edit with IDLE,这样即可以查看,也可以调试代码
pip install ipython
ipython
一般来说这样就能看到源代码了,不过numpy好像比较特殊,可以参考如下方法:
安装pipenv,
用pipenv打开numpy源码
$ pipenv --three
$ python3.6 -c "from pathlib import Path;fn='Pipfile';Path(fn).write_text(Path(fn).read_text().replace('pypi.org', 'mirrors.aliyun.com/pypi'))"
$ pipenv shell
$ pipenv install numpy
$ pipenv open numpy