首页 | 新闻 | 交流 | 问吧 | 文档 | 手册 | 下载 | 博客

python_函数

作者:  时间: 2011-05-27

1.定义函数

#!/usr/bin/python
# Filename:function1.py

def sayHello():
print 'Hello World!' #block belonging to the function

sayHello() #call the function

都是差不多的东西

函数通过def关键字定义。def关键字后跟一个函数的 标识符 名称,然后跟一对圆括号。圆括号之中可以包括一些变量名,该行以冒号结尾。接下来是一块语句,它们是函数体。

2.函数形参

/usr/bin/python.py
# Filename: func_param.py

def printMax(a,b):
        if a <= b :
                print b, 'is maximum'
        else :
                print a, 'is maximum'
printMax(3,4) #directly give literal values
x = 8
y = 7
printMax(x,y) #give variables as arguments

差不多的东西

3.局部变量
     3.1使用局部变量

/usr/bin/python.py
# Filename: func_param.py

def printMax(a,b):
        if a <= b :
                print b, 'is maximum'
        else :
                print a, 'is maximum'
printMax(3,4) #directly give literal values
x = 8
y = 7
printMax(x,y) #give variables as arguments
root@sgb-desktop:~/program# python func_local.py
x is 50
Changed local x to
2
after calling func(), x
is still 50

这个不难理解

     3.2使用global语句

#!/usr/bin/python
# Filename: func_global.py

def func():
        global x

        print 'x is', x
        x = 2
        print 'Changed local x to', x
x = 50
func()
print 'Value of x is',x
root@sgb-desktop:~/program# python func_glonal.py
x is 50
Changed local x to
2
Value of x
is 2
root@sgb
-desktop:~/program# vim func_glonal.py

这个似乎和c中的extern差不多,书上说不建议使用不是函数内定义的变量,这个可以理解。

4.默认参数

#!/usr/bin/python
# Filename: func_default.py

def say(message, times = 1):
        print message*times

say('Hello')
say('World',5)

c++中有这个东西

5.关键参数

1 #!/usr/bin/python
2 # Filename: func_key.py
3  def func(a, b = 5, c = 10):
4 print 'a is', a, 'and b is', b, 'and c is', c
5
6 func(3,7)
7 func(25, c=24)
8 func(c = 50, a = 100)
a is 3 and b is 7 and c is 10
a
is 25 and b is 5 and c is 24
a
is 100 and b is 5 and c is 50

如果你的某个函数有许多参数,而你只想指定其中的一部分,那么你可以通过命名来为这些参数赋值——这被称作 关键参数 ——我们使用名字(关键字)而不是位置(我们前面所一直使用的方法)来给函数指定实参。

这样做有两个 优势 ——一,由于我们不必担心参数的顺序,使用函数变得更加简单了。二、假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值。

这个好像在c++中没有

6.DocStrings

#!/usr/bin/python
# Filename: func_doc.py

def printMax(x,y):
        '''Prints the maxmum of two numbers.

        The two values must be integers.'''
        x = int(x) #convert to integers, if possible
        x = int(y)

        if x > y:
                print x, 'is maximum'
        else:
                print y, 'is maximum'
printMax(3,5)
print printMax.__doc__
root@sgb-desktop:~/program# python func_doc.py
5 is maximum
Prints the maxmum of two numbers.

The two values must be integers.