设为首页 收藏本站
查看: 541|回复: 0

[经验分享] python学习笔记-共享你的代码

[复制链接]

尚未签到

发表于 2017-4-29 10:09:39 | 显示全部楼层 |阅读模式
Python学习笔记-共享你的代码    [CQ1] 
Python的一个优点为共享代码,那么如何实现python共享代码?
Python提供了一组技术,可以很容易的实现共享,这包括模块和一些发布工具:
         1、模块允许你合理组织代码来实现最优共享
         2、发布工具允许你向全世界共享你的模块
 
模块的概念:模块就是一个包含python代码的文本文件,对模块的主要需求就是要求文件名以.py结尾,这是python的扩展名。要把函数转换为一个模块,需要把代码保存到一个适当命名的文件中。
1、  python的标准库在安装python的时候,就已经预装大量的模块在你电脑中。
2、  如果标准库了没有适合的模块,还可以到第三方python模块网上pypi.
 
如何注释代码?为什么要加注释?应该在什么地方加注释?
Python的注释分为两种:单行注释(#adad)和多行注释(”””adad”””
*为代码加注释绝对是一个好的编程习惯,注释有助于建立帮助文档,帮助别人更好的学习你的代码,也帮助你自己养成良好的编程习惯,帮助你更好的了解编程,有助于你以后理解你的代码。首先,我们必须为我们的模块加注释,这能让我们或者别人一目了然的知道你这个模块的功能;其次,我们必须为我们的函数加注释,说明该函数的功能,函数的参数,函数的返回值等等;然后,我们还应该为为我们定义的变量加注释,我们必须说明该变量的用途;最后,我们应该对逻辑性很强或者很难理解的代码加注释(循环,选择,异常等)。
 
发布你的模块吧!所谓的发布,是指一个文件集合,这些问价联合在一起允许你构建,打包盒发布你的模块。
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
构建模块后,导入模块病使用。使用语句:import 模块名。在这里会产生错误,该错误说明我们使用的模块中的函数未定义。这是因为我们没有规定给函数是属于该模块的命名空间,应该这样调用:模块名.函数;
 
如何更新以前编写的函数?增加函数的参数,可以增加函数的功能,让该函数更加符合用户的需求。
 
Python会尽力运行你的代码:与编译型语言不同,python在运行之前并不全会全面检查代码的合法性这使得python可以做很多其他语言中无法做到的很酷的事情,如果运行时动态的定义函数。当然,这相当灵活,也非常强大。
 
在改进python的模块时,应该考虑到向下兼容,至于如何做到向下兼容,可以用函数参数缺省值来表示,这样函数就可以既做到以前的用户方便使用,还可以满足不停变化的用户需求。
 
*你怎么知道python的(本地)模块放在哪吗?我们可以询问IDLE,IDLE中的提示窗口键入:import  syssys.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文件是什么?解释器第一次执行模块代码时,它会读入代码,并转换为一种中间代码格式,最终所要执行的就是这些字节码(与javaJVM相似,利用java技术编译代码时,java代码会转换成.class文件),python在下一次使用模块时,就会先确定该模块是否改变,如果没改变就会直接用.pyc文件,如果改变,就会重新编译该模块,在用.pyc文件。提高了执行效率。
*是否只想用户提供.pyc文件就可以了呢?可不可以删除pyc文件?不行,因为pyc文件的使用主要是解释器完成的一个运行时优化。可以,不过要记住,你可能会损失运行时优化。
*BIF肯定属于__main__命名空间?并非如此,他们会自动导入到__main__命名空间,但是BIF有他们自己的命名空间,这个命名空间是__builtins__
 [CQ1]剑锋无刃
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-370665-1-1.html 上篇帖子: Python多线程之start_new_thread 下篇帖子: 使用Xcode编辑并运行python代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表