zoukankan      html  css  js  c++  java
  • python-函数和模块

    函数的定义

    1、函数代码块以def关键词开头,后接函数标识符名称和圆括号()。
    2、任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    3、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    4、函数内容以冒号起始,并且缩进。
    5、Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None。

    def functionname( parameters ):
       "函数_文档字符串"
       function_suite
       return [expression]
    def printme( str ):
       "打印传入的字符串到标准显示设备上"
       print str
       return

    函数的调用

    定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

    传递参数

    所有参数(自变量)在Python里都是按引用传递。如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。

    匿名函数

    用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。
    1、Lambda函数能接收任何数量的参数但只能返回一个表达式的值,同时不能包含命令或多个表达式。
    2、匿名函数不能直接调用print,因为lambda需要一个表达式。
    3、lambda函数拥有自己的名字空间,且不能访问自有参数列表之外或全局名字空间里的参数。
    4、虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。
    lambda函数的语法格式如下:

    lambda [arg1 [,arg2,.....argn]]:expression
    sum = lambda arg1, arg2: arg1 + arg2;
     
    #调用sum函数
    print "Value of total : ", sum( 10, 20 )

    return语句
    return语句[表达式]退出函数,选择性地向调用方返回一个表达式。不带参数值的return语句返回None。

    函数的类型是由返回值决定的。

    import语句

    简单地说,模块就是一个保存了Python代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。
    下例是个简单的模块support.py。

    def print_func( par ):
       print "Hello : ", par
       return

    想使用Python源文件,只需在另一个源文件里执行import语句,语法如下:

    import module1[, module2[,... moduleN]

    如下例子:

    # 导入模块
    import support
    # 现在可以调用模块里包含的函数了
    support.print_func("Zara")

    from…import

    Python的from语句让你从模块中导入一个指定的部分到当前命名空间中。语法如下:

    from modname import name1[, name2[, ... nameN]]

    例如,要导入模块fib的fibonacci函数,使用如下语句:

    from fib import fibonacci

    from…import*

    把一个模块的所有内容全都导入到当前的命名空间也是可行的,只需使用如下声明:

    from modname import *

    这提供了一个简单的方法来导入一个模块中的所有项目。然而这种声明不该被过多地使用。

    reload函数
    当一个模块被导入到一个脚本,模块顶层部分的代码只会被执行一次。因此,如果你想重新执行模块里顶层部分的代码,可以用reload()函数。该函数会重新导入之前导入过的模块。语法如下:

    reload(module_name)

    在这里,module_name要直接放模块的名字,而不是一个字符串形式。比如想重载hello模块,如下:

    reload(hello)
  • 相关阅读:
    C++类模板的三种特化
    构造函数抛异常
    ScrapySharp
    QtWebKit
    visual studio 插件
    asp.net 开源
    cfr
    eclipse icon
    JAD Java Decompiler
    Java Decompiler
  • 原文地址:https://www.cnblogs.com/lely/p/10174631.html
Copyright © 2011-2022 走看看