总结Python编程技巧全过程

开发 后端
Python编程技巧差不多应该都是容易学的,如果你一但掌握了Python编程技巧那么你就会把其中的乐趣带入了快乐的世界里面。

Python编程技巧在其他部分的设计上也坚持了清晰划一的风格,这使得Python语言也称为一门易读性、易维护性好的语言打下了良好的基础,希望下面的文章,能够让你喜欢上python语言。

但是很多人都会用了一段时间basic之后就把它废置了,因为觉得除了能够用来play,功能太少。即便是vb,也是功能不甚完善的,很多地方要依靠其他语言写的组件和直接调用api来完成功能。

python由于粗看之下,也是那么的像玩具。而且那个交互式命令行给人带来的教学语言的感觉更加加强了人们的想法。但是python其实功能不能说是弱,其实是非常强大。python内置了重要的数据结构和文件这些功能,而且包含了一个很大的标准库。

基本上涵盖了从GUI到数据库到网络种种功能上的要求。而且还有很多爱好者,公司企业为python写第三方的库,这些库品种繁多,功能齐全。而且还能把其他语言的库加以包装给自己使用,直接用c这样的语言了来写扩展的库也是可以的。所以说,python像basic一样好学,但是功能却要强大很多。

python速度很慢,只能用在很少的应用场合对于习惯了汇编和C++这样的语言的人,思维总是有一个惯性(包括我自己也经历了这么一个阶段)。就是看文件大小是数字节的,任何运行时的overhead都是绝对不可以的。那么一看见python这样的动态语言,而且动态得非常厉害的语言,怎么看怎么不顺眼也是情理之中了。

关键的问题首先是你是否需要省那么个100~200k的大小,现在的内存,硬盘,网络通信环境已经不大在乎这么一点的空间了,所以大小不是问题。关键的是运行时间吗?其实在很多场合下是不需要那么快的速度的,比如开一个窗口,运行如果延时100ms,你感觉得到吗?

python还能够把py文件进行一些处理变成pyc文件,加速源文件的解释执行。像java的虚拟机中的just in time或者hot spot这样的预先读取,预先编译的技术都能构同等的用于python

python还有一个非常大的好处就是能够用C这样的快速的语言写扩展模块。在软件中一般都是20%的代码占据了80%的运行时间。这样你可以先用benchmark这样的工具看看软件是否慢得无法忍受了,然后再用profiler查出问题瓶颈在哪里,那么就可以把关键的代码用C解决掉。

这样可以节省了开发时间(大部分代码用python写,比C快),而且运行速度也可以令人满意。所以说,对于python的速度是不用多担心的。但是为了客观起见,python的却是慢的,在python中什么都是对象,这个比java这样的不那么纯的OO语言,就要差一些了。

有这个看法主要是认为,因为python是动态的,所以缺乏静态的类型检查,那么程序中的错误就很难发现了。设置可能说没有执行到的块的语法都没有得到完全彻底的检查。变量由于没有声明,所以容易产生误写的错误。事情真这么糟糕吗?

***个缺乏类型检查是说一个函数有几个参数,但是由于参数的类型是动态确定的,所以没有办法在静态的时候就检查传入的参数和参数表是否匹配了。问题是你写的函数一定要自己测试了,而且一旦出了问题,你是非常容易找到出错的地方的。dynamic typing是那么灵活好用,多这么一点麻烦也是值得的。

这个总是问题了吧。对于变量名的误拼写出现在赋值的情况的时候就会被通过,因为认为是产生一个新的名称绑定。那么这个也好找出来啊,必然是出现在赋值的情况下,比basic中的那种情况好多了

总体来说是,dynamic的东西缺少一些静态的检查的却是会使得错误隐蔽一些。但是由于动态带来的调试上的方便(比如能够一眼从出错信息中找到出错的行,以及调用流程)足以把副作用给抵消了。

【编辑推荐】

  1. 漫谈Python 源代码编制技巧
  2. 简单易于操作的Python 工具详解
  3. 有关Python应用领域进行说明介绍
  4. PythonAndroid面向对象的编程——Python应用程序
  5. 如何使用Python模块解析配置文件 ?
责任编辑:chenqingxiang 来源: CSDN
相关推荐

2011-02-22 10:46:02

Samba配置

2010-02-23 11:35:38

Python 项目测试

2009-12-08 17:56:16

WCF配置

2011-04-18 15:56:10

软件测试

2011-09-06 15:38:20

QT安装

2011-01-21 17:51:52

2009-04-13 12:37:18

2010-02-22 13:38:50

Python解析器

2012-11-06 10:19:18

Java自定义加载Java类

2009-06-10 16:55:42

cygwin netb安装

2010-06-17 13:10:09

Linux Grub修

2010-11-19 10:11:49

Oracle物化视图

2010-03-10 13:24:45

Zend Debugg

2011-03-11 10:39:02

YUM安装LAMP

2010-06-12 10:03:20

Ubuntu Grub

2019-05-14 15:27:31

MongoDB自动备份数据库

2010-07-21 14:51:19

telnet-serv

2017-04-25 18:03:11

Caffe深度学习框架

2009-12-15 16:51:32

2011-06-24 13:08:34

Qt Qt 4.5.3 移植
点赞
收藏

51CTO技术栈公众号