美文网首页
Python篇-函数(二)函数结构与存储

Python篇-函数(二)函数结构与存储

作者: TianTianBaby223 | 来源:发表于2018-10-08 15:59 被阅读13次

一 : 全局变量与局部变量

  • 全局变量,函数内部直接使用
name = "雪芙"
def change_name1():
    print(name)
change_name1()
雪芙
  • 函数内部的局部变量
NAME = '百百'

def fun1():
    name = "HUAHA"
    print(name)

    def fun2():
        name = "雪芙"
        print(name)

        def fun3():
            name = "微微"
            print(name)

        print(name)
        fun3()

    fun2()
    print(name)
fun1()

HUAHA
雪芙
雪芙
微微
HUAHA
  • global
name = "雪芙"
def chang_name():
    global name
    name = "百百"
    print(name)
chang_name()
print(name)
百百
百百

使用global相当于引用了外部全局变量,无论有多少层,指向最外部的全局变量.

name = "000层"
def fun1():
    name = "111层"

    def fun2():
        # 不管有多深都指向全局name
        global name
        name = "我是海王"

    fun2()
    print(name)


print(name)
fun1()
print(name)
000层
111层
我是海王
  • nonlocal
    引用上一层变量,如果没有就继续往上直到找到为止
name = "000层"
def fun1():
    name = "111层"
    def fun2():
        # 指的是上一级变量
        nonlocal name
        name = "金刚狼"
    fun2()
    print(name)
print(name)
fun1()
print(name)
  • 全局是可变类型,局部可对其进行修改
    局部重新定义的话,就变成局部变量啦.
names = ['雪芙', '曼丽', '思思']

def change_name2():
    names.append('hello')
    print("我要你",names)
change_name2()
print(names)
我要你 ['雪芙', '曼丽', '思思', 'hello']
['雪芙', '曼丽', '思思', 'hello']

二 : 函数存储结构

函数也是一种变量,变量名相当于变量名,函数体相当于值.
相当于定一个函数体,放在内存中,对应的变量名是foo,又定义了一个函数体放在内存中,变量为bar.
当调用foo时候找到相应的代码,指执行print('from foo')又执行bar()此时可以找到对应的代码并且执行

def foo():
    print('from foo')
    bar()

def bar():
    print('bar')
foo()
from foo
bar

报错
与javaScript不同,python没有预编译,不能把函数定义代码自动放到调用前面,所以,函数在调用foo时找不到bar()对应的代码,就报错了

def foo():
    print('from foo')
    bar()
foo()
def bar():
    print('bar')
NameError: name 'bar' is not defined

相关文章

  • Python篇-函数(二)函数结构与存储

    一 : 全局变量与局部变量 全局变量,函数内部直接使用 函数内部的局部变量 global 使用global相当于引...

  • Python——函数与模块和包

    Python函数与模块 Python中可以将函数存储在文件中,这个文件被称为模块。将模块导入到主程序中。impor...

  • python 函数

    函数的基本结构 Python中的函数基本结构: 几点说明: 函数名的命名规则要符合python中的命名要求。一般用...

  • Python函数式介绍二 - 链式调用

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 上一篇文章中我们发现我们的代码越来越...

  • Python函数式介绍一 - 高阶函数

    Python函数式介绍一 - 高阶函数Python函数式介绍二 - 链式调用 最近为了给朋友推广Python函数式...

  • Python基础(三)

    Python中的函数 函数的意义: 对输入进行变换映射后输出 过程化VS 结构化 函数的创建及结构: 定义函数名 ...

  • Python中"一等公民"——函数

    Python的函数是“一等公民”。 你可以将它们分配给变量,将它们存储在数据结构中,将它们作为参数传递给其他函数,...

  • 存储过程与函数

    存储过程与函数存储过程的定义存储过程的创建存储过程的操作自定义函数 存储过程与函数 存储过程的定义 运行效率高 降...

  • Python语言程序---代码复用与函数递归(二)

    Python语言程序---代码复用与函数递归(二) 函数递归 在函数定义中,调用函数自身的方式就是递归。 递归并不...

  • 闭包

    曾经介绍过两篇关于函数的文章,第一篇是 关于 Python 函数是第一类对象,第二篇是关于 Lambda 函数,今...

网友评论

      本文标题:Python篇-函数(二)函数结构与存储

      本文链接:https://www.haomeiwen.com/subject/qdjjoftx.html