• Python_自定义函数_使用_运行流程


    一,自定义函数

    Python有自带的函数,而自己定义新的函数也是可以的。

    函数定义要指定这个新函数的名字,还需要一系列语句放到这个函数里面,当调用这个函数的时候,就会运行这些语句了。

    >>> def print_new():

    ...     print('I am ok')

    ...     print('I am very fine')

    ...                                        #交互模式必须要多敲一行空格,Python才知道赋值结束。

    >>>

    这里的def就是一个关键词,意思是这是在定义一个函数。

    函数的名字就是print_new,函数的命名规则和变量命名规则基本差不多,都是字幕梳子或者下划线,但是不能用数字打头。另外也不能用关键词做函数名,还要注意尽量避免函数名和变量名发生重复。

    函数名后面的括号是空的,意思是这个函数不需要参数。

    语法:函数定义的第一行叫做头部,剩下的叫做函数体。函数头部的末尾必须有一个冒号,函数体必须是相对函数头部有缩进的,

    距离行首相对于函数头要有四个空格的距离,留意上面的示例中print前面是有空格的。函数体可以有任意长度的语句。注意:缩进是Python最强制的要求,这个很重要。

    在打印语句中,要打印的字符串需要用双引号或单引号括着。单引号和双引号效果一样,除非是字符串中已经出现了单引号,一般都用单引号。

    定义函数会创建一个函数类的对象,有type函数。

    >>> type(print_new)

    <class 'function'>

    调用新函数的语法和调用内置函数是一样的,直接打印函数名:

    >>> print_new()

    I am ok

    I am very fine

    一旦定义了一个函数,就可以在其它函数里面来调用这个函数,比如我们写个repeat_new的函数来测试一下。

    >>> def repeat_new():

    ...     print_new()

    ... 

    >>> repeat_new()   #调用

    I am ok

    I am very fine

    二,定义并使用

     整合一下前面的小块代码:

    >>> def print_new():

    ...     print('I am ok')

    ...     print('I am very fine')

    ... 

    >>> def repeat_new():

    ...     print_new()

    ... 

    >>> repeat_new()

    I am ok

    I am very fine

    这个代码块包含两个函数的定义:print_new以及repeat_new,函数定义的执行就和其他语句一样,但是效果是创建函数对象。

    函数定义中的语句直到函数被调用的时候才会运行,函数的定义本身不会有任何输出。

    三,运行流程

    为了确保一个函数在首次被调用之前已经定义,我们必须要明白语句运行的顺序,也就是所谓"运行流程"。

    一个Python程序都是从第一个语句开始运行的。从首至尾,每次运行一个语句。函数的定义并不会改变程序的运行流程,但要注意,函数体内部的语句只有在函数被调用的时候才会运行。

    函数调用就像是运行流程有了绕道的行为,没有直接去执行下一个语句,运行流跳入到函数体内,运行里面的语句,然后再回来从离开的地方继续执行。

    简要说,就是跳出跳入互相调用,完成整个程序的执行。

    Python本身会实时追踪应该执行的位置,所以每次一个函数执行完毕了,程序都会回到当时跳出的位置,然后继续运行,等执行到了程序的末尾,就终止了。

    有时候,我们要按照运行流程来读代码,才更好理解一些。

    结束。

  • 相关阅读:
    Window黑客编程之资源释放技术
    实战|一个表白墙引发的“血案”
    【T1543.003】利用 ACL 隐藏恶意 Windows 服务
    exe调用DLL的方式
    要点4:C的文件操作
    regsvr32 bypass windows defender 新思路
    使用Zolom内存解析运行python脚本(不落地)
    在不影响程序使用的情况下添加shellcode
    要点2:循环、条件控制
    要点3:输入函数对比与自定义输入方式
  • 原文地址:https://www.cnblogs.com/liusingbon/p/13026323.html
Copyright © 2020-2023  润新知