曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。 是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。

有趣的Python

上一篇 / 下一篇  2010-08-12 22:19:54 / 个人分类:脚本语言

    好久没弄Python了,记得刚接触到Python的时候,就特别喜欢,觉得很有意思,挺有趣的,喜欢他的简洁和方便,而如今,好像只会Python了。。。
1. 文件,函数,类
文件
Python中,一个py文件,就是一个模块,可以用import导入。所以就有可能项目中,所有文件都是.py,比如各种配置信息等。假设需要一个配置文件MyConf.py,里面内容:
#config file
DB='MySQL'
id='ermine'
passwd='51testing'
其他文件中,就可以方便的调用
>>> import MyConf
>>> MyConf.DB
'MySQL'
函数和类
>>> def MyFunc(num1,num2):
return num1+num2

>>> y=MyFunc
>>> y
<function MyFunc at 0x01F4BDF0>
y是记录了函数MyFunc的地址,所以,可以把y当成参数来调用
同样的还有类和对象
>>> class MyClass():
def __init__(self):
self.m='hello world'

>>> z=MyClass
>>> z
<class __main__.MyClass at 0x01F699C0>
>>> h=MyClass()
>>> h
<__main__.MyClass instance at 0x01F92580>
可以将类z作为参数调用,需要的时候,再实例化。
函数和类混用,觉得很有意思
>>> def ClassFunc():
c=MyClass()#这里返回的是类的实例,也可以返回类c=MyClass
return c    

>>> y=ClassFunc()
>>> y
<__main__.MyClass instance at 0x01F48788>
>>> y=ClassFunc
>>> y
<function ClassFunc at 0x01FA2F70>
2. 函式编程(PF)
对于函式编程,自己了解的不多,只是觉得Python里的几个特性比较方便
表达式lambda
函数map,reduce,filter
具体用法看帮助就比较容易懂了,但是写出好的表达式,还得多练练手。。。
据说真正的PF可以用表达式代替所有语句,不过那样可能可读性不太好,不了解,猜测而已。
比如筛选出列表中大于5的数字
>>> mylist=[1,3,6,7]
>>> filter(lambda x:x>5,mylist)
[6, 7]
还可以不用函数,直接用列表
>>> [i for i in mylist if i>5]
[6, 7]
3. doctest
记得python中国社区的那句话,以单元测试为荣。Python的单元测试,不仅有和Junit类似的unittest,还有个doctest。
假设代码如下:
>>> def ismale(name,flag):
if flag=='Y':
print name+" is a male"

>>> ismale("John",'Y')
John is a male
如果用doctest,就需要修改成
>>> def ismale(name,flag):
"""
        >>> ismale("John",'Y')
        John is a male
        """
if flag=='Y':
print name+" is a male"
中间的注释,其实就是测试步骤和期望结果,然后就能用doctest了
>>> import doctest
>>> doctest.testmod()
TestResults(failed=0, attempted=1)
既可以做注释,当help时,有提示信息,又可以做简单的测试,两不误^_^.


TAG:

xiaojiu103 引用 删除 xiaojiu103   /   2013-09-26 08:38:41
这是什么语言写的,挺好奇的。里边的代码只是位置变化了一下,没什么大的变化
xiaojiu103 引用 删除 xiaojiu103   /   2013-09-26 08:36:52
5
alice的个人空间 引用 删除 alice2003yf   /   2010-08-13 21:19:33
看不懂
测试新新手的个人空间 引用 删除 测试新新手   /   2010-08-13 15:42:50
5
 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 46332
  • 日志数: 33
  • 文件数: 1
  • 建立时间: 2009-07-10
  • 更新时间: 2010-12-07

RSS订阅

Open Toolbar