python学习——局部变量与全局变量
来源:互联网 发布:手机端js关闭当前页面 编辑:程序博客网 时间:2024/06/05 06:49
以Python核心教程(第二版)中例子11.9为例,来说明一下python中的局部变量与全局变量的用法:
#!/usr/bin/env pythonj,k = 1,2def proc1(): j,k = 3,4 print("j == %d and k== %d" % (j,k)) k = 5def proc2(): j = 6 proc1() print("j == %d and k== %d" % (j,k))k = 7proc1()print("j == %d and k== %d" % (j,k))j = 8proc2()print("j == %d and k== %d" % (j,k))
得到结果为:
j == 3 and k== 4j == 1 and k== 7j == 3 and k== 4j == 6 and k== 7j == 8 and k== 7
下面来详细讲解一下程序中是怎么寻找j,k变量的。
首先给定一个原则:函数中的变量为局部变量,首先在该函数体中寻找该变量的值,且是按顺序寻找的,找不到的话再去函数外面的全局变量需找。同理,函数外部的变量首先在全局变量寻找,寻找不到就找不到了,函数中定义的话,是没用的。
1、j == 3 and k== 4
程序中首先执行的是proc1(),此时在函数proc1()中寻找j,k的局部变量,为j=3,k=4。
2、j == 1 and k== 7
程序然后执行:print(“j == %d and k== %d” % (j,k))
在全局变量中寻找变量j,k的值,得到答案。
3、j == 3 and k== 4
程序随后执行proc2()。
函数proc2()中首先执行proc1(),此时得到的结果如同1.
4、j == 6 and k== 7
然后执行函数proc2()中的:print(“j == %d and k== %d” % (j,k))
此时先从函数proc2()中寻找j,k的值,结果只找到第10行,j=6,k值函数proc2()中没有定义,就从函数外寻找,找到第14行的,k=7,得到结果。
5、j == 8 and k== 7
这个就很明显了,从全局变量寻找变量的值。
PS:当然,这只是很简单的用法,以后遇到复杂的会结合这个简单的例子继续进行分析的。
阅读全文
0 0
- python学习——局部变量与全局变量
- python学习之全局变量与局部变量
- Python语法基础——关于全局变量与局部变量
- Python语法基础——关于全局变量与局部变量
- Python语法基础——关于全局变量与局部变量
- Python语法基础——关于全局变量与局部变量
- Python语法基础——关于全局变量与局部变量
- Python局部变量与全局变量
- Python局部变量与全局变量
- Python 局部变量与全局变量
- python 局部变量与全局变量
- Python 全局变量与局部变量
- Python全局变量与局部变量
- python全局变量与局部变量
- Python学习笔记(2)-局部变量与全局变量
- Python中变量作用域问题——局部变量与全局变量
- Python学习之,全局变量和局部变量
- python学习总结---全局变量、局部变量
- 康托展开&康托逆展开 的写法
- JAVA反射机制
- [POJ 1860] Currency Exchange [spfa]
- Dockerfile指令
- php 读写json文件。追加,修改json
- python学习——局部变量与全局变量
- linux IPC---记录上锁
- Java-简单操作Excel
- Zend Studio快捷键
- 不同电脑上的两台linux使用桥接模式实现互通(静态ip地址)
- HTML5基础归纳(2)--常遇到的兼容问题及解决办法
- 【Java面试知识】异常
- leetcode(查找数组中元素位置)
- 关于vue resource post 参数传不过去