`
newsjobs
  • 浏览: 40806 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Python nested function 的一些理解加实验

阅读更多
http://newsjobs.iteye.com/blog/1002333
以上的帖子是记录最近开始的一个边学边做的项目的首篇,在那个系列中只会记录项目的进度和基本内容。
涉及到的技术点等会单独开贴来记录

Python整体感觉,语法还是比较复杂的,有其他静态语言经验的想要快速学好Python是件比较难的事,至少对我是。
我基本采用了边做项目边学习的方法来做,遇到问题就查找语法,解决方案等。因为如果让我再看砖头厚的书,看不下去啊。
言归正传。

今天主要说一下Python 的 nest function功能。遇到这个功能主要是在看到function decorator的时候遇到的。
要想理解function decorator首先要对nest function的机制有个详尽的理解。不然看不懂decorator的执行过程的。

我不准备过多的重复网上能够搜到的讲解,我只是列举下我在学习nest function时自己写的一个简单的例子,通过这个例子了解到了整个nest function的一些功能,只能说一部分的理解吧。

根据以下的例子,首先别运行,先自己写下结果然后对比着来,自己试着理解下。
在此我不做解释,因为这会影响你的思考过程,有什么疑问可以修改这个例子,来验证你的想法。
如果还有什么疑问可以回帖我们一切讨论。

def f1():
    print 'f1'
    def f2():
        print 'f2'
        def f3():
            print "f3"
        return f3
    return f2

f = f1  

print f 

f = f() 

print f 

f = f() 

print f 

print f() 

f = f()  

print f 
分享到:
评论

相关推荐

    Python闭包:深入理解与应用场景解析.zip

    在Python中,闭包是指一个内嵌函数(nested function)对其外部作用域变量的引用,即使外部函数已经执行完毕,闭包依然可以访问并修改这些变量。这种现象源于Python的“词法作用域”规则,即变量的作用范围由其在...

    PYTHON期末总结.pdf

    - **关键字**: Python中有一些保留的关键字,如 `if`, `for`, `while`, `def`, `class` 等,这些关键字不能用作标识符。 ##### 4. 简单数值类型 - **整型** (`int`):用于表示整数。 - **浮点型** (`float`):用于...

    python3.6.5参考手册 chm

    Python参考手册,官方正式版参考手册,chm版。以下摘取部分内容:Navigation index modules | next | Python » 3.6.5 Documentation » Python Documentation contents What’s New in Python What’s New In ...

    pythonx学习指南

    - **嵌套函数(nested function)**:函数内部可以定义另一个函数。 - **模块(module)与包(package)**:模块是包含Python代码的文件,包是包含多个模块的目录。 ### 高级特性 #### §1.13 对象与类 - **对象(object...

    Python Tutorial 入门指南3.6英文版

    5.1.4. Nested List Comprehensions 46 5.2. The del statement 47 5.3. Tuples and Sequences 48 5.4. Sets 50 5.5. Dictionaries 51 5.6. Looping Techniques 53 5.7. More on Conditions 55 5.8. Comparing ...

    Python Cookbook, 2nd Edition

    Flattening a Nested Sequence Recipe 4.7. Removing or Reordering Columnsin a List of Rows Recipe 4.8. Transposing Two-Dimensional Arrays Recipe 4.9. Getting a Value from a Dictionary Recipe ...

    google的python编码规范.pdf

    《Google的Python编码规范》是一份详尽的指南,旨在为Python编程提供一套标准和最佳实践。...遵循这些规则,可以帮助开发者编写出高质量、易于理解的Python代码,从而提升整个项目团队的开发效率和代码质量。

    python(1).doc

    嵌套函数(nested function)是在函数内部定义的函数对象,外层函数(outer function)是定义嵌套函数的函数,内层函数(inner function)是被定义的函数。内外层函数并非本质不同,而是平级关系,但内层函数无法...

    Python学习笔记

    - **嵌套函数(nested function)**:函数内部可以定义其他函数,增强代码的封装性和复用性。 - **高阶函数**:函数作为参数传递或返回值,例如`map`、`filter`等。 #### 2. 模块(module)与包(package) - **模块导入...

    python programming

    1.7 Inside a Python Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.8 Chaos and Computers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ...

    Python 闭包的使用方法

    Python 闭包的使用方法 嵌套函数中的非局部变量 在进入闭包之前,我们必须先了解一个嵌套函数和非局部变量。 在函数中定义另一个函数称为嵌套函数。嵌套函数可以访问包围...# This is the nested function print(msg

    python 3000 and you(最新可编辑文档).ppt

    1. **Print Function:** In Python 3, the `print` statement was replaced with a `print()` function, allowing more control over output, such as specifying the output stream, like `print(a, b, file=sys....

    Python 2.5 Reference Card

    虽然标签中出现了一些与Python无关的技术(如ASP.NET、Java、J2EE、Visual Studio、C++),但本篇文章将专注于Python 2.5本身的内容。 ### Python 2.5 Reference Card #### 1. Variable Types ##### 1.1 Numbers ...

    Python本地与全局命名空间用法实例

    本文实例讲述了Python本地与全局命名... print (Nested Function\n=================) print locals() sub(5) print (\nFunction\n=================) print locals() print locals()[x] print globals()[x] p

    函数的嵌套_函数的嵌套_

    理解并熟练运用这些概念,可以提高代码的可读性和可维护性,同时也能帮助解决一些特定问题,如数据封装、状态管理等。通过实践和学习上述文件(5.闭包函数.py、6.闭包特点和意义.py、3.函数的嵌套.py、4.nonlocal...

    实例详解Python装饰器与闭包

    首先,我们需要理解Python中的变量作用域规则。 在Python中,函数内部可以访问全局变量,但如果在函数内部再次定义同名变量,则会创建一个局部变量。例如: ```python a = 'global var' def foo(): print(a) foo...

Global site tag (gtag.js) - Google Analytics