函数的定义和执行
def method1():
print("aa")
method1()
执行结果如下:
aa
可变参数
我们先定义可以简单的函数:
def method1(a, b, c):
print("a=%s" %a)
print("b=%s" %b)
print("c=%s" %c)
method1(1, 2, 3)
输出结果如下:
a=1
b=2
c=3
如果忽略参数的顺序,可以使用关键字参数:
def method1(a, b, c):
print("a=%s" %a)
print("b=%s" %b)
print("c=%s" %c)
method1(1, c=3, b=2)
这个时候,输出结果仍然是:
a=1
b=2
c=3
像print参数,你可以传递一个参数,也可以传递多个参数,python并没有报错。原因是使用了*号。例如:
def method1(a, *otherParam):
print(len(otherParam))
method1(1, 2, 3,4)
输出结果如下:
3
我们使用*otherParam
作为其他参数,这样子,除了第一参数必须传之外,其他的,爱传多少就多少,非常灵活。
变量的作用域
先观察这段代码:
name = "sam"
def method1():
name = "sam2"
print(name)
method1()
print(name)
输出结果是多少呢?起初以为输出的都是sam2
,但是在python
里,输出的是sam2
和sam
。也即是说,在方法method(1)
里,就算你改变name
变量的值,也只是在函数范围内而已。
输出结果:
sam2
sam
那么如何输出两个sam2
呢。可以使用global
关键字。
name = "sam"
def method1():
global name
name = "sam2"
print(name)
method1()
print(name)
输出结果如下:
sam2
sam2