2018-11-19

python函数的定义

我们通常使用def关键字来定义函数当我们想定义一个函数的时候可以

p1

如图我们可以看到def定义了一个h1函数他的功能是打印一个123字符。

在这里首先我们需要明白h1指的是函数的名字,他的意思其实是一个标志指向内存中的print(‘123’),既然是内存中的123指向标我们也就可以对其进行赋值运算

如图

2018-11-19_第1张图片
p2

图中我们可以看到我们定义了一个run1函数把他赋值给了run2我们的操作是先打印出列表中的内容!如图


p3

我们可以看到答应出来了两个相同的内存地址由此可见他们是只想完全相同的一个内存地址的那么我们就进行接下来的运行

2018-11-19_第2张图片
p4

那么我们可以看一下他是否可以运行?


p5

由此可见他们是可以运行的!

接下来我们来看一下命名空间

1Python中一共有3种命名空间

(1).全局命名空间

(2).局部命名可见

(3).内置命名空间 

内置命名空间就是指python解释器已启动就可以直接调用的命名空间函数如:print,input,output,def

全军命名空间就是对于对于代码中来说我们定义在函数体外部的所有函数他们在其他语言中通常叫做共有变量

局部命名空间顾名思义就是只能在局部的代码中生效的命名空间对于他来所就是我们的def函数了,我们函数里面的变量被叫做局部命名空间只在函数体内部可行出去则不可以,在其他语言里我们通常叫他们为私有变量

全局作用域和局部作用域

首先我们明白全局变量了那么当我们打出

a=1

def func():

    print(a)

上面的代码可以看出我们要运行a这样的一个全局变量回答必然是可以的在局部变量中是可以引用全局作用域里的函数a此时就是全局作用域中的一个函数啦

如果我们希望对全局作用域的函数进行修改或者调整的时候我们会发现无法调整这个时候我们就要使用到global这个函数了


2018-11-19_第3张图片

如图有了该函数我们就可以赋予权限让局部变量来调用了那么大家一定翁一个问题如果嵌套定义了很多函数怎么办?

这里映入一个nonlocal函数该函数之争对局部变量进行操作为下层函数赋予权限来修改上层函数定义如图

2018-11-19_第4张图片
2018-11-19_第5张图片

你可能感兴趣的:(2018-11-19)