• [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,一次运算处理序列,直至结束。

  • 相关阅读:
    显示文件本地文件夹
    Select Dependencies选择依赖项
    搜索小技巧
    783. Minimum Distance Between BST Nodes BST节点之间的最小距离
    5. Longest Palindromic Substring 最长的回文子串
    12. Integer to Roman 整数转罗马数字
    3. Longest Substring Without Repeating Characters 最长的子串不重复字符
    539. Minimum Time Difference 最小时差
    43. Multiply Strings 字符串相乘
    445. Add Two Numbers II 两个数字相加2
  • 原文地址:https://www.cnblogs.com/xiaofeiIDO/p/6009667.html
Copyright © 2020-2023  润新知