位置:首页 » Python3入门教程 » Python3 函数

Python3 函数 [编辑]

函数定义

函数是可重用的代码,可以在程序中任何地方调用。我们使用这个语法来定义函数:

def function(parameters):
     instructions
     return value

def 关键字告诉 Python,我们有一段可重用的代码(函数)。一个程序可以有很多函数。

示例

我们可以调用函数(参数)的功能。

#!/usr/bin/python
 
def f(x):
    return x*x
 
print f(3)

输出结果:

9

该函数具有一个参数,x。返回值是函数的返回值。并非所有的函数都有返回值。我们可以通过传递多个变量:

#!/usr/bin/python
 
def f(x,y):
    print 'You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y)
    print 'x * y = ' + str(x*y)
 
f(3,2)

输出:

You called f(x,y) with the value x = 3 and y = 2
x * y = 6

作用域

变量只能实现它们所限定的区域,这就是所谓的作用范围。下面示例中将无法正常工作:

#!/usr/bin/python
 
 
def f(x,y):
    print 'You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y)
    print 'x * y = ' + str(x*y)
    z = 4 # cannot reach z, so THIS WON'T WORK
 
z = 3
f(3,2)

但是,这将:

#!/usr/bin/python
 
def f(x,y):
    z = 3
    print 'You called f(x,y) with the value x = ' + str(x) + ' and y = ' + str(y)
    print 'x * y = ' + str(x*y)
    print z   # can reach because variable z is defined in the function
 
f(3,2)

让我们来进一步看看:

#!/usr/bin/python
 
def f(x,y,z):
    return x+y+z   # this will return the sum because all variables are passed as parameters
 
sum = f(3,2,1)
print sum

在函数中调用函数

我们还可以从另外一个函数获取变量的内容:

#!/usr/bin/python
 
def highFive():
    return 5
 
def f(x,y):
    z = highFive()    # we get the variable contents from highFive()
    return x+y+z      # returns x+y+z. z is reachable becaue it is defined above
 
result = f(3,2)
print result

变量不能的范围(作用域)之外。下面的例子是行不通的。

#!/usr/bin/python
 
def doA():
    a = 5
 
def doB():
    print a   # does not know variable a, WILL NOT WORK!
 
doB()

但这个例子使用外部参数可以运行:

#!/usr/bin/python
 
def doA():
    a = 5
 
def doB(a):
    print a   # we pass variable as parameter, this will work
 
doB(3)

在最后的例子中,我们有一个名为 a 的两个不同的变量,因为变量 a 的范围是仅在函数。 该变量没有范围之外不会被知道。

该函数 doB() 将打印 3(传递给它的值)。分配 a = 5 包含在函数 doA() 内但不被使用,除函数 doA() 本身之内,并不可见在函数 doB() 或代码的其余部分。

如果一个变量可以到达代码的任何位置被称为:全局变量。如果一个变量只作用在一定范围内,我们称之为:局部变量