当前位置:嗨网首页>书籍在线阅读

02-def语句和参数

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

3.1 def语句和参数

如果调用 print()len() 函数,你会传入一些值放在括号之间,称为“参数”。也可以自己定义接收参数的函数。在文件编辑器中输入下面这个例子,将它保存为helloFunc2.py:

❶  def hello(name):
     ❷ print('Hello, ' + name)
❸  hello('Alice')
   hello('Bob')

如果运行这个程序,输出结果看起来像下面这样:

Hello, Alice
Hello, Bob

可以在https://autbor.com/hellofunc2/上查看该程序的执行情况。在这个程序的 hello() 函数定义中,有一个名为 name 的变元❶。“变元”是一个变量,当函数被调用时,参数就存放在其中。 hello() 函数第一次被调用时,使用的参数是 'Alice' ❸。程序执行进入该函数,变量 name 自动设为 'Alice' ,就是被 print() 语句输出的内容❷。

关于变元有一件特殊的事情值得注意:保存在变元中的值,在函数返回后就丢失了。例如前面的程序,如果你在 hello('Bob') 之后添加 print(name) ,程序会报 NameError ,因为没有名为 name 的变量。在函数调用 hello('Bob') 返回后,这个变量被销毁了,所以 print(name) 会引用一个不存在的变量 name

这类似于程序结束时,程序中的变量会被丢弃。在本章后续内容中,当我们探讨函数的局部作用域时,我会进一步分析为什么会这样。