566 views
Python开发

Python第11天 函数变量与返回值

文章目录

2018-11-27 18:28:32

1.4 函数的变量

  • Python中的任何变量都有特定的作用域
  • 在函数中定义的变量一般只能在该函数内部调用,这些只能在程序的特定部分使用的变量叫局部变量
  • 在一个文件顶部定义的变量,可供文件中任何函数调用的叫全局变量
  • 定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域
    注:
    1.全局变量不能在函数内部直接修改它的值,需要用global声明,不然会报错
    2.在函数内部使用global申明的变量。在函数外部也可以调用,但是不建议这样做
#!/usr/bin/python
x = 100
def fun():
    x=1
    y=1
    print locals()  #获取fun()函数内部所有的变量,**生成的是一个字典**
print locals() #获取整个程序/文件的所有变量,这里显示的都是一些内置变量
--------------结果如下---------------------
{'y': 1, 'x': 1}
{'__builtins__': <module '__builtin__' (built-in)>, '__file__': 'def.py', '__package__': None, 'x': 100, 'fun': <function fun at 0x7fbcf66c55f0>, '__name__': '__main__', '__doc__': None}

1.5 函数的返回值

  • 函数被调用后会返回一个指定值
  • 函数调用后默认返回None
  • return可以返回任意值
  • return之后,函数会终止运行,函数不会继续往下走了
  • 函数里一般不适用print,print多数用来调试,如果需要返回值用return
  • 程序运行到所遇到的第一个return即返回(退出def块),不会再运行第二个return,但并不是一个函数能值有一个return,可以有多个
x = 1
y = 2
def a(x, y):
  z = x + y
  return z
print (a(x,y)
-------------------------------
x = 1
y = 2
def a(x, y):
  z = x + y
  print z
print (a(x,y))
注:在交互模式下,return的结果会自动打印出来,而作为脚本单独运行时则需要print函数才能显示。

函数作为返回值返回

def a(*args):
    def sum():
        x=0
        for n in args:
            x=x+n
        return x
    return sum
a(1,2,3,4,5,6,7,8,9) #这时候a并没有执行,而是返回一个指向求和的函数的函数名sum 的内存地址。
f=a(1,2,3,4,5,6,7,8,9)
print(type(f))
print(f())  # 调用f()函数,才真正调用了 sum 函数进行求和,

Leave a Reply

影子专属博客 赣ICP备17013143号