Python学习笔记-共享你的代码 [CQ1]
l Python的一个优点为共享代码,那么如何实现python共享代码?
Python提供了一组技术,可以很容易的实现共享,这包括模块和一些发布工具:
1、模块允许你合理组织代码来实现最优共享
2、发布工具允许你向全世界共享你的模块
l 模块的概念:模块就是一个包含python代码的文本文件,对模块的主要需求就是要求文件名以.py结尾,这是python的扩展名。要把函数转换为一个模块,需要把代码保存到一个适当命名的文件中。
1、 python的标准库在安装python的时候,就已经预装大量的模块在你电脑中。
2、 如果标准库了没有适合的模块,还可以到第三方python模块网上pypi.
l 如何注释代码?为什么要加注释?应该在什么地方加注释?
Python的注释分为两种:单行注释(#adad)和多行注释(”””adad”””)
*为代码加注释绝对是一个好的编程习惯,注释有助于建立帮助文档,帮助别人更好的学习你的代码,也帮助你自己养成良好的编程习惯,帮助你更好的了解编程,有助于你以后理解你的代码。首先,我们必须为我们的模块加注释,这能让我们或者别人一目了然的知道你这个模块的功能;其次,我们必须为我们的函数加注释,说明该函数的功能,函数的参数,函数的返回值等等;然后,我们还应该为为我们定义的变量加注释,我们必须说明该变量的用途;最后,我们应该对逻辑性很强或者很难理解的代码加注释(循环,选择,异常等)。
l 发布你的模块吧!所谓的发布,是指一个文件集合,这些问价联合在一起允许你构建,打包盒发布你的模块。
1、 首先为模块创建一个文件夹。将预先准备好的模块复制到这个文件夹。
2、 其次,在新文件夹中创建一个名为“setup.py“的文件,在这个文件中包含了有关发布的元数据,编辑这个文件,增加系列代码:
from distutils.core import setup
setup(
name = ‘模块的名称’,
version = ‘1.0.0’,
py_modules = [‘模块的名称’],
author = ‘作者的名称’,
author_email = ‘邮箱’,
url = ‘链接地址’,
description = ‘描述模块功能’,
)
3、 构建一个发布文件。在”模块“文件夹中打开终端,
终端键入命令:python3 setup.py sdist
4、 将发布安装到你的python本地副本中。
终端键入命令:sudo python3 setup.py install
l 构建模块后,导入模块病使用。使用语句:import 模块名。在这里会产生错误,该错误说明我们使用的模块中的函数未定义。这是因为我们没有规定给函数是属于该模块的命名空间,应该这样调用:模块名.函数;
l 如何更新以前编写的函数?增加函数的参数,可以增加函数的功能,让该函数更加符合用户的需求。
l Python会尽力运行你的代码:与编译型语言不同,python在运行之前并不全会全面检查代码的合法性这使得python可以做很多其他语言中无法做到的很酷的事情,如果运行时动态的定义函数。当然,这相当灵活,也非常强大。
l 在改进python的模块时,应该考虑到向下兼容,至于如何做到向下兼容,可以用函数参数缺省值来表示,这样函数就可以既做到以前的用户方便使用,还可以满足不停变化的用户需求。
*你怎么知道python的(本地)模块放在哪吗?我们可以询问IDLE,在IDLE中的提示窗口键入:import sys;sys.path,可以看到一个位置列表,python解释器就在这个位置上搜索模块。例如:
>>> import sys; sys.path
['', 'C:\\Python33\\Lib\\idlelib', 'C:\\Windows\\system32\\python33.zip', 'C:\\Python33\\DLLs', 'C:\\Python33\\lib', 'C:\\Python33', 'C:\\Python33\\lib\\site-packages']
*可以在一行上使用“;“把多行代码放在一行上吗?的确可以,但是,最好python的代码独占一行,这样可以增加代码的可读性,养成良好的编程风格。
*python中所有的代码都与一个命名空间关联,在主程序中(以及IDLE SHELL)的代码与一个__main__的命名空间关联。将代码放在其单独模块时,python会自动创建一个与模块同名的命名空间。
*使用一个普通的import语句时,这会指示python解释器允许你使用该命名空间来限定访问该空间的函数,但如果使用<from 命名空间import 函数>,会把指定函数增加到当前命名空间中,这样一来,就不必在使用命名空间来限定。注意:如果当前命名空间已经有了同名函数,这个特定的import语句将覆盖当前的函数。
*向pypi发布代码的两个步骤:首先,通过命令窗口注册pypi,以及通过命令窗口进行上传。
*为什么要把模块安装到python的本地副本中?能不能放在某个文件中,再从其中导入?的确可以,不过要记住,python会在一组特定的位置寻找模块,如果把你的模块放在某个文件中,而这个文件夹并不在解释器扫描范围内,就会导致importError错误。
*模块名.pyc文件是什么?解释器第一次执行模块代码时,它会读入代码,并转换为一种中间代码格式,最终所要执行的就是这些字节码(与java的JVM相似,利用java技术编译代码时,java代码会转换成.class文件),python在下一次使用模块时,就会先确定该模块是否改变,如果没改变就会直接用.pyc文件,如果改变,就会重新编译该模块,在用.pyc文件。提高了执行效率。
*是否只想用户提供.pyc文件就可以了呢?可不可以删除pyc文件?不行,因为pyc文件的使用主要是解释器完成的一个运行时优化。可以,不过要记住,你可能会损失运行时优化。
*BIF肯定属于__main__命名空间?并非如此,他们会自动导入到__main__命名空间,但是BIF有他们自己的命名空间,这个命名空间是__builtins__
相关推荐
推荐,对应中文版本《Python学习笔记--皮大庆》,非常适合零基础入门。 推荐 [《Python编程实践》] () 推荐 推荐 有其他编程语言基础 推荐 推荐 进阶 推荐 更多书籍推荐 知乎问答: V2EX问答: 四、视频推荐 麻省...
Python学习之路,点击有全套Python笔记 进程:一个运行的程序(代码)就是一个进程,没有运行的代码叫程序,进程是系统资源分配的最小单位,进程拥有自己独立的内存空间,所有进程间数据不共享,开销大。 线程: cpu...
软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++、Java、python、web、C#等语言的项目开发与学习资料 硬件与设备:单片机、EDA、proteus、RTOS、包括计算机硬件、服务器、网络设备、存储设备...
我出于学习目的共享这些内容,因为使用任何编程语言制作游戏总是感觉很棒:) 总共有8款游戏,直观上讲,它们的复杂程度从小到大,因此,最后一款名为“ Asteroids”的游戏非常有趣。 1-剪刀石头布 2-猜数字 3-秒表...
带有的ARM设备的映像,使用数据流图进行数值计算的开放源代码软件库,可让您通过玩和学习不同的机器学习技术,该工具可让您创建和共享包含实时代码,方程式,可视化和说明文字的文档。 计算叙事是协作数据科学的引擎...
可以考虑在适当的地方使用适用于可运行代码的适用于Jupyter笔记本的Allen Downey的Python。 包含用于教授Python入门课程的其他材料。 所有具有知识共享许可的材料开源,可在非商业应用程序中免费使用,请参阅许可...
如何你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,那么用TemporaryFile函数创建临时文件是最好的选择。其他的应用程序是无法找到或打开这个文件的,因为它并没有引用文件系统表。用这个函数...
通过简洁的代码,简单的数学和可视化来学习最佳实践。 :notebook:笔记本:snake:Python:input_numbers:NumPy:panda:Pandas TensorFlow PyTorch:chart_increasing:线性回归| :bar_chart:Logistic回归| :control_knobs:...
我用于深度学习课程的代码。 这里不应该有专有的内容。 对于较早的练习,我尝试在Octave和NumPy中创建并行实现。 稍后,类提供的帮助程序代码需要使用Matlab(目前)。 材料 笔记 L-BFGS Matlab代码由斯坦福大学根据...
我的个人学习笔记 有问题发ISSUES 注意: 所有内容都是我的个人经验或者看法或者学习笔记.遵循知识共享许可协议(BY)(不是我的内容可以循原来的协议).使用wiki的图片遵循原来的协议. 由于部分图片不可公开, 所以这里我...
Jupyter Notebook...Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。
软件开发设计:PHP、应用...云计算与大数据:数据集、包括云计算平台、大数据分析、人工智能、机器学习等,云计算是一种基于互联网的计算方式,通过这种方式,共享的软硬件资源和信息可以按需提供给计算机和其他设备。
TIDBITS-GCE'O'级别的笔记共享网站 该网站可以在查看。 以数据为中心的发展里程碑项目 建立一个全栈网站,允许用户管理一个公共数据集,其中包括允许用户与社区共享他们自己的数据,并允许其他人访问数据。 使用的...
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了...
MLflow:机器学习生命周期平台MLflow是一个简化机器学习开发的平台,包括跟踪实验,将代码打包为可重现的运行以及共享和部署模型。 MLflow提供MLflow:一个机器学习生命周期平台MLflow是一个简化机器学习开发的平台...
一旦创建了一个能够提供出色数据洞察力的笔记本,便很难与那些不想在所有干的,难以阅读的代码中搜寻代码的企业用户共享,更不用说对其进行调整和协作了。 PixieDust进行了营救。什么是PixieDust? PixieDust是一个...
正好最近在学习Python,于是决定用python写一个定时关机的脚本: 话不多说由于代码比较简单,直接上代码。 代码块 # -*- coding: utf-8 -*- Created on Sat Dec 19 11:18:16 2015 @author: win7 '''定时关机''' '...
jovian-py是一个开源Python软件包,用于将您的数据科学代码,Jupyter笔记本,ML模型,超参数,指标等上载到您的Jovian帐户。 安装 pip install jovian --upgrade 注意事项: 如果出现“ Permission denied错误,请...