浅谈Python中函数的定义及其调用方法

一、函数的定义及其应用

所谓函数,就是把具有独立功能的代码块组织成为一个小模块,在需要的时候调用函数的使用包含两个步骤

1.定义函数–封装独立的功能

2.调用函数–享受封装的成果

函数的作用:在开发时,使用函数可以提高编写的效率以及代码的重用‘'

函数:

函数是带名字的代码块,用于完成具体的工作

需要在程序中多次执行同一项任务时,你无需反复编写完成该任务的代码,而只需调用该任务的函数,让python运行其中的代码,你将发现,通过使用函数,程序编写,阅读,测试和修复都将更容易

1.定义函数

def 函数名():

函数封装的代码

1.def是英文define的缩写

2.函数名称应该能够表达函数封装代码的功能,方便后续的调用

3.函数名称的命名应该符合标识符的命名规则

可由字母,下划线和数字组成

不能以数字开头

不能与关键字重名

参数的作用

函数,把具有独立功能的代码块组织成为一个小模块,在需要的时候调用函数的参数,增加函数的通用性,针对相同的数据处理逻辑,能够适应更多的数据

1.在函数内部,把参数当作变量使用,进行需要的数据处理

2.函数调用时,按照函数定义的参数顺序,把希望在函数内部处理的数据,通过参数传递

形参和实参

形参:定义函数时,小括号中的参数,是用来接收参数用的,在函数内部作为变量使用

实参:调用函数时,小括号中的参数,是用来把数据传递到函数内部用的

函数的返回值

在程序开发中,有时候,会希望一个函数执行结束后(举例子:温度计函数,要返回给我>们当前的温度),告诉调用者一个结果,以便调用者针对具体的结果作出后续的处理

返回值是函数完成工作后,最后给调用者的一个结果

在函数中使用return关键字可以返回结果

调用函数一方,可以使用变量来接收函数的返回结果

局部变量和全局变量

局部变量是在函数内部定义的变量,只能在函数内部使用

全局变量是在函数外部定义的变量,(没有定义在某一个函数内),所有函数内部都可以使用这个变量

局部变量

局部变量是在函数内部定义的变量,只能在函数内部使用

函数执行结束后,函数内部的局部变量,会被系统回收

不同的函数,可以定义相同的名字的局部变量,但是各用各的不会产生影响

局部变量的作用

在函数内部使用,临时保存函数内部需要使用的数据

变量进阶

目标

变量的引用

可变和不可变类型

局部变量和全局变量

变量的引用

变量和数据都是保存在内存中的

在python中函数的参数传递以及返回值都是靠引用传递的

引用的概念

在python中

变量和数据是分开存储的

数据保存在内存中的一个位置

变量中保存的是数据在内存中的地址

变量中记录数据的地址,就叫做引用

使用id()函数可以查看变量中保存数据所在内存的地址

二、函数的跨文件调用

模块文件:每一个python源文件都可以是一个模块文件,可以在一个python文件中定义函数或者变量,然后在另一个函数使用import filename导入这个模块,导入之后,可以使用模块名.变量或者模块名.函数的方式使用这个模块文件的函数和变量

首先定义一个函数

# 1.定义一个函数,能够打印*组成的一条分隔线

def print_line():
  print '*' * 50

print_line()

# 2.定义一个函数能够打印由任意字符串组成的分割线

def print_line(char):
  print char * 50
print_line('&')

# 3.定义一个函数能够打印任意重复次数的分隔线
def print_line(char,times):
  print char * times
print_line('%',20)

# 4.定义一个函数能够打印五行分隔线,
# 分隔线要求符合需求3

# def print_line(char,times):
#   print char * times

def print_lines(char,times):
  """打印多行分隔线

  :param char: 分隔线使用的分隔字符
  :param times: 分隔线重复的次数
  """
  row = 0
  while row < 5:
    print_line(char,times)
    row += 1

print_lines('!',70)
模块文件:每一个python源文件都可以是一个模块文件
可以在一个python文件中定义函数或者变量
然后在另一个文件中使用 import filename 导入这个模块
导入之后,就可以使用 模块名.变量/模块名.函数的方式,
使用这个模块中定义的函数和变量
import func_04
import fun_01
print func_04.name
func_04.print_lines('*',80)
result = fun_01.sum_2_sum(3,6)
print result

2.模块的调用

1.

test1文件中
title = '模块1'

# 函数
def demo1():
  print '今天学习%s' %title
# 类
class Cat(object):
  pass

title = '模块2'

test2文件中
# 函数
def demo1():
  print '今天学习%s' %title
# 类
class Dog(object):
  pass
import test1
import test2
test1.demo1()
test2.demo1()

cat = test1.Cat()
print cat
dog = test2.Dog()
print dog

使用as指定模块的别名(大驼峰命名法)

from test1 import Cat
# 如果重名的话,则第二个导入的覆盖同名的第一个
from test1 import demo1 as test_demo1
from test2 import demo1

cat = Cat()
print cat
test_demo1()
demo1()

2.python的解释器在导入模块的时候,会:

1.搜索当前目录指定的模块文件,如果有就直接导入

2.如果没有,再搜索系统目录

注意:在开发时,给文件起名,不要和系统模块文件重名

所以在导入文件时,不能起和系统文件重名的名字,例如下例的random

import random
ran = random.randint(1,10)
print ran

3.name属性

功能:测试模块的的代码只在测试情况下被运行,而在导入时不会被运行

name时python的一个内置属性,记录这一个字符串

被其他文件导入时,name就是模块名

如果是当前执行的程序name就是main

def wn():
  print '今天是个好日子'

if __name__ == '__main__':
  print __name__
  print '模块的引用'
调用函数
import test
wn = test.wn()
print wn

以上这篇浅谈Python中函数的定义及其调用方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2019-07-19

Python中函数及默认参数的定义与调用操作实例分析

本文实例讲述了Python中函数及默认参数的定义与调用操作.分享给大家供大家参考,具体如下: #coding=utf8 ''''' Python中的函数使用小括号调用.函数在调用之前必须先定义. 如果函数中没有return语句,就会自动返回None对象. Python是通过引用调用的.如果函数内对参数的改变会影响到原始对象. 只有可变对象会受此影响,对不可变对象,它的行为类似按值调用. ''' ''''' 定义函数: def function_name([arguments]): "option

Python自定义函数的创建、调用和函数的参数详解

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创见函数,这被叫做用户自定义函数.一.定义一个函数你可以定义一个由自己想要功能的函数,以下是简单的规则: 1.函数代码块以def关键词开头,后接函数标识符名称和圆括号().2.任何传入参数和自变量必须放在圆括号中间.圆括号之间可以用于定义参数.3.函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明.4.

python调用matlab的m自定义函数方法

项目信号处理和提取部分用到了matlab,需要应用到工程中方便研究.用具有万能粘合剂之称的"Python".具体方法如下: 1.python中安装mlab 下载https://pypi.python.org/pypi/mlab 安装命令:python setup.py install Mlab is a high-level python to Matlab bridge that lets Matlab look like a normal python library. 2 .测试

实例讲解Python中函数的调用与定义

调用函数: #!/usr/bin/env python3 # -*- coding: utf-8 -*- # 函数调用 >>> abs(100) 100 >>> abs(-110) 110 >>> abs(12.34) 12.34 >>> abs(1, 2) Traceback (most recent call last): File "<stdin>", line 1, in <module&

Python中函数的基本定义与调用及内置函数详解

前言 函数function是python编程核心内容之一,也是比较重要的一块.首先我们要了解Python函数的基本定义: 函数是什么? 函数是可以实现一些特定功能的小方法或是小程序.在Python中有很多内建函数,当然随着学习的深入,你也可以学会创建对自己有用的函数.简单的理解下函数的概念,就是你编写了一些语句,为了方便使用这些语句,把这些语句组合在一起,给它起一个名字.使用的时候只要调用这个名字,就可以实现语句组的功能了. 语法如下: # 定义方式 : def functionname([pa

python调用自定义函数的实例操作

在python中,想要调用自定义函数必须先声明,然后才能调用.使用函数时,只要按照函数定义的形式,向函数传递必需的参数,就可以调用函数完成相应的功能或者获得函数返回的处理结果. (1)声明函数 python中使用 def 可以声明一个函数,完整的函数是由函数名.参数以及函数实现语句(函数体)组成的. 在函数声明中,也要使用缩进以表示语句属于函数体. 如果函数有返回值,需要在函数中使用return语句返回计算结果,声明函数的一般形式如下: def <函数名>(参数列表): <函数语句>

Python自定义函数定义,参数,调用代码解析

函数能提高应用的模块性,和代码的重复利用率.Python提供了许多内建函数,比如print()等.也可以创建用户自定义函数. 函数定义 函数定义的简单规则: 函数代码块以def关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须放在圆括号中间 函数内容以冒号起始,并且缩进 若有返回值,Return[expression]结束函数:不带return表达式相当于返回None 函数通常使用三个单引号'''...'''来注释说明函数:函数体内容不可为空,可用pass来表示空语句:以下几个

shell自定义函数及参数调用解析

一.定义函数 复制代码 代码如下: function fname(){statements;} 或 复制代码 代码如下: fname(){statements;} 二.调用函数 只需要使用函数名,即可调用某个函数:$ fname ; #执行函数 可以传递参数给函数,并由脚本进行访问:fname arg1 arg2; # 传递参数 以下是函数fname的定义.在函数fname中,包含了各种访问函数参数的方法. 复制代码 代码如下: fname(){  echo $1, $2; # 访问参数1和参数

python默认参数调用方法解析

这篇文章主要介绍了python默认参数调用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 最常见的一种形式是的是为一个或者多个参数指定默认值,这会创建一个可以使用比定义时允许的参数更少的参数调用的函数, def ask_ok(prompt, retries=4, reminder='Please try again!'): while True: ok = input(prompt) if ok in ('y', 'ye', 'yes'

Python中函数的参数定义和可变参数用法实例分析

本文实例讲述了Python中函数的参数定义和可变参数用法.分享给大家供大家参考.具体如下: 刚学用Python的时候,特别是看一些库的源码时,经常会看到func(*args, **kwargs)这样的函数定义,这个*和**让人有点费解.其实只要把函数参数定义搞清楚了,就不难理解了. 先说说函数定义,我们都知道,下面的代码定义了一个函数funcA def funcA(): pass 显然,函数funcA没有参数(同时啥也不干:D). 下面这个函数funcB就有两个参数了, def funcB(a,

python函数定义和调用过程详解

这篇文章主要介绍了python函数定义和调用过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 我们可以创建一个函数来列出费氏数列 >>> def fib(n): # write Fibonacci series up to n ... """Print a Fibonacci series up to n.""" ... a, b = 0, 1 ... while a &

Python自定义计算时间过滤器实现过程解析

这篇文章主要介绍了Python自定义计算时间过滤器实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 在写自定义的过滤器时,因为django.template.Library.filter()本身可以作为一个装饰器,所以可以使用: register = django.template.Library() @register.filter 代替 register.filter("过滤器名","函数名") 如果

Java多线程之 FutureTask:带有返回值的函数定义和调用方式

FutureTask 返回值的函数定义和调用 使用Runnable接口定义的任务是没有返回值的.很多时候,我们是有返回值的,为了解决这个问题,Java提供了Callable接口,可以返回指定类型的值. 但是这个接口本身是不具备执行能力的,所以Java中,还有一个FutureTask 类用于使用Callable接口定义带有返回值的任务. 使用示例 以下代码演示了定义和调用的整个过程. import java.util.concurrent.Callable; import java.util.co

Python内建函数之raw_input()与input()代码解析

这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互.但他们的功能不尽相同.举两个小例子. >>> raw_input_A = raw_input("raw_input: ") raw_input: abc >>> input_A = input("Input: ") Input: abc Traceback(most recent call last): File "<pyshell#1>

深入理解python中函数传递参数是值传递还是引用传递

目前网络上大部分博客的结论都是这样的: Python不允许程序员选择采用传值还是传 引用.Python参数传递采用的肯定是"传对象引用"的方式.实际上,这种方式相当于传值和传引用的一种综合.如果函数收到的是一个可变对象(比如字典 或者列表)的引用,就能修改对象的原始值--相当于通过"传引用"来传递对象.如果函数收到的是一个不可变对象(比如数字.字符或者元组)的引用,就不能 直接修改原始对象--相当于通过"传值"来传递对象. 你可以在很多讨论该问题

理解Python中函数的参数

定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解. Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数,使得函数定义出来的接口,不但能处理复杂的参数,还可以简化调用者的代码. 默认参数 我们仍以具体的例子来说明如何定义函数的默认参数.先写一个计算x2的函数: def power(x