流暢的python---函數

Posted 行走在云端

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了流暢的python---函數相关的知识,希望对你有一定的参考价值。

一、函数的定义及其应用
所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用
函数的使用包含两个步骤
1.定义函数–封装独立的功能
2.调用函数–享受封装的成果
函数的作用:在开发时,使用函数可以提高编写的效率以及代码的重用‘’
函数:函数是带名字的代码块,用于完成具体的工作 需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用该任务的函数

最簡單函數:例子

def fib(n):
    if n<=1:
       return n
    else:
       return fib(n-1)+fib(n-2)
   
    
a=fib(10)    
print (a)

for i in range(1, 20):
    print(fib(i), end= )



打印结果:
55
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 

 

 

闭包函数:闭包的特点就是内部函数引用了外部函数中的变量

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Created on Sat May  2 23:04:22 2020

@author: root

函数名.__closure__ 在函数是闭包函数时,返回一个cell元素;不是闭包时,返回None。

"""


def func():
    name=100
    def inner():
        print (name)
        print(inner.__closure__)  # (<cell at 0x0000027C14EB85E8: str object at 0x0000027C14F54960>,)

    return inner    

f=func()
f()

结果:
100
(<cell at 0x7f568408d050: function object at 0x7f568405c560>, <cell at 0x7f567feb9310: int object at 0x55d3c129df60>)
def line_conf(a,b):
    def line(x):
        return a*x+b
    return line

lineA=line_conf(2,1)   #y=2x+1
lineB=line_conf(3, 4)  #y=3x+1

print (lineA(1))
print (lineB(1))

__closure__属性返回的是一个元组对象,包含了闭包引用的外部变量。

·  若主函数内的闭包不引用外部变量,就不存在闭包,主函数的_closure__属性永远为None:4

 

以上是关于流暢的python---函數的主要内容,如果未能解决你的问题,请参考以下文章

Python 函數 Function

Python 函數與常用模組 - 生成器並行運算

Python 函數與常用模組 - 迭代器

Python 函數與常用模組 - 生成器

iOS 11 內的 Safari 原來有隱藏功能,開啟後可令瀏覽網站更流暢!

js函數