欢迎使用我的 在线工具

小D

读历史、看小说、写程序都是我所爱。技术不好,头脑不灵光,靠的是兴趣。
随笔 - 35, 文章 - 25, 评论 - 13, 引用 - 0
数据加载中……

python学习笔记二

1. 关于内部函数和装饰器
在python中可以再函数内部定义函数
可以使用装饰器的概念,任何函数都可以作为装饰器,使用:
   def wfunc():
 Print “wrapped func”
@wfunc()
def foo():
 pass
 如上面的代码那么在调用foo()函数的时候,就会先调用wfunc()函数,其实这个也就是我们

Java程序员所说的AoP。
 def tt(fun):
    print 'Hello I am tt'
    return fun

def ttt(fun):
    print "Hello I am ttt"
    return fun

def tttt(fun):
    print "Hello I am tttt"
    return fun()
   
@tt(tttt)
@ttt
def foo():
   print 'Hello I am foo'

foo = tt(tttt)(ttt(foo))

2.  python解释器
所有的python程序都是在Python解释器中执行 python解释器是一个独立的进程,其实我们可以把整个

python解释器看做服务器,而我们的程序就是写在客户端(各种编程工具),然后在服务器上运行。

3. 闭包
如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的
变量进行引用,那么内部函数就被认为是closure。定义在外部函数内的但由内部函数引用或者使用的变

量被称为自由变量。

 

 

4. 名字空间
如果说模块是按照逻辑来组织 Python代码的方法, 那么文件便是物理层上组织模块的方法。因此, 一个

文件被看作是一个独立模块, 一个模块也可以被看作是一个文件。 模块的文件名就是模块的名字加上扩

展名 .py 。
一个名称空间就是一个从名称到对象的关系映射集合。
 解释器启动之后, 也可以访问这个搜索路径, 它会被保存在 sys 模块的 sys.path 变量里。可

以使用sys.path .append()函数加入搜索路径。
 解释器执行到这条语句, 如果在搜索路径中找到了指定的模块, 就会加载它。该过程遵循作用

域原则, 如果在一个模块的顶层导入, 那么它的作用域就是全局的; 如果在函数中导入, 那么它的作用

域是局部的。
使用自己想要的名字替换模块的原始名称。一个普遍的解决方案是把模块赋值给一个变量。当然这样很

无聊,所以可以使用 as 关键字达到同样的效果。
Python 模块(.py, .pyc, or .pyo 文件)。
在python中也有包的概念,基本和Java相同,就不多说了。

posted on 2009-11-04 20:49 vagasnail 阅读(163) 评论(0)  编辑  收藏 所属分类: python


只有注册用户登录后才能发表评论。


网站导航: