zoukankan      html  css  js  c++  java
  • [python] 之 函数简介

    函数是对程序逻辑进行结构化或过程化的一种编程方法,详细的说明请参考《python学习手册》,不能及时详细解释,望见谅!。

    一、创建函数

    1.1 def语句

    def function(args):

      "documentation"

      function_body_suite

    1.2 声明、定义与参数

      声明指定义了函数名和参数(名),未定义函数主体代码块

      定义指定义函数主体代码块

      参数主要包含位置参数,默认参数,非关键字参数(*args),关键字参数(**kargs),且在创建函数时,必须遵循这个顺序。非关键字参数(*args),关键字参数(**kargs)在创建函数中使用,可收集参数;在调用中使用,可解包参数。谨记默认可变参数陷阱。

    1.3 前向引用

      python中,函数不存在前向引用的规则(谁先定义无影响,甚至是无顺序的嵌套),只需要满足在调用前定义即可

      def foo()

        print('foo')

        bar()

      def bar()

        print('bar')

       foo()

    1.4 属性

      通过句点属性标识法进行访问和添加属性,函数的属性与函数对象有关,和函数的作用域无关

    1.5 内嵌函数

      在函数体内创建另一个函数

    1.6 函数装饰器

      @decorator(dec_opt_args)

      def function(args):

        "doc"

        body_suite

      #for example

      @g

      @f

      def foo():

        pass

    foo = g(f(foo))

    1.7 偏函数

      from functools import partial

      add1 = partial(add, 1)  # add1(x) = add(1, x)

      baseTwo = partial(int,base=2) #将参数base=2,固定为int函数的固定参数。

    1.8 闭包 函数

      如果在一个内部函数里,对在外部作用域(但不是在全局可作用域)的变量进行引用,那么这个内部函数就是一闭包,并具有记忆性。

    1.9 递归

      如果函数包含了对其自身的调用,该函数就是递归函数

      def factorial(n):

        if n == 1 or n == 0:

          return 1

        else:

          return (n*factorial(n-1))

    1.10 函数式编程

      lambda [arg1 [, arg2, ...]]:expr

      lambda表达式返回可调用的函数对象。

    1.11 内建函数

      map(),filter(),reduce()均创建了迭代语境,类似与for

      map(func, seqs)遍历序列中的每一个元素,并通过func函数处理,返回所有值组成的列表

      filter(func, seqs)遍历序列中的每一个元素,保留函数返回为布尔真的元素,将所有的值添加到一个列表中并返回

      reduce(func, seqs)取出序列的前两个元素,传入二元函数func来获得一个单一的值,然后将该值同下一个元素,再次传入二元函数func,一次运算处理序列,直至结束。

  • 相关阅读:
    DEBUG 知识
    转载:telnet启动后的登录问题
    通过ip找主机名
    转载:网线的相关知识
    hdu2717(广度优先搜索)
    hdu1241(bfs)
    hdu1060 数论
    大数除(hdu2117)
    hdu1159(DP)
    hdu2181__DFS
  • 原文地址:https://www.cnblogs.com/xiaofeiIDO/p/6009667.html
Copyright © 2011-2022 走看看