python返回值与局部全局变量
Python 2.7.10 (default, Oct 14 2015, 16:09:02)
[GCC 5.2.1 20151010] on linux2
Type "copyright", "credits" or "license()" for more information.
>>> def fun1():
return [1,2,3] >>> print(fun1)
<function fun1 at 0xb71cfb8c>
>>> a=fun1()
>>> a
[1, 2, 3]
>>> def fun2():
return 4,5,6 >>> b=fun2()
>>> b
(4, 5, 6)
>>> def fun3():
print "hello woeld" >>> c=fun3()
hello woeld
>>> c
>>> c
>>> print(fun(3)) Traceback (most recent call last):
File "<pyshell#17>", line 1, in <module>
print(fun(3))
NameError: name 'fun' is not defined
>>> type(c)
<type 'NoneType'>
>>> print(c)
None
>>> type(c)
<type 'NoneType'>
>>>
函数的返回值可以是一个列表或一个元组,如果没有return,那么仍然会返回一个NONE,类型那个为typenone,
对于全局ii变量,我们在函数中只能进行引用,而不能进行修改
局部在堆栈中分配,
当我们你试图在函数中修改全局变量的时候,python会发生屏蔽,会在函数中发生屏蔽机制,额外创建一个临时变量,只能对临时变量进行修改
但是我们可通过global关键子在函数中强制对全局变量进行修改
>>>
>>> number=5
>>> def fun6():
global number
number=10
return number >>> fun6()
10
>>> print(num)
10
>>> print(number)
10
>>>
python函数还可以进行嵌套
>>>
>>> def f1():
print("fun1..")
def fun2():
print("fun2")函数作用范围同c/c++
fun2() >>> f1()
fun1..
fun2
>>>
函数都嵌套传参数,对于第一种方法,如果我们只是传了一个参数,那么会返回一个函数,表示需要想第二个函数传参数,
简单的做法就是直接连续写两个括号传两个参数
>>> def fun1(x):
def fun2(y):
return x*y
return fun2 >>> fun1() Traceback (most recent call last):
File "<pyshell#108>", line 1, in <module>
fun1()
TypeError: fun1() takes exactly 1 argument (0 given)
>>> fun1(5)
<function fun2 at 0xb71cfb8c>
>>> type(fun1(5))
<type 'function'>
>>> i=fun1(5)
>>> i(10)
50
>>> fun1(3)(8)
24
对于python3.0之前,为了可以在局部对外部变量进行改变,因为list不是在堆栈山申请的,所以我们可以改变外部的list变量
>>> def fun5():
x=[5]
def fun6():
x[0]*=x[0]
return x[0]
return fun6() >>> fun5()
25
3.0之后可以只有 nonlocal
闭包就是内部函数可以使用外部的作用区间(不是全局的)进行引用,那么这个内部函数就被叫闭包
python返回值与局部全局变量的更多相关文章
- python返回值进行unpack
最近在写yolov3,因为yolov3的多输出性质,所以我打算写适配多输出的工具函数,在numpy中可以在一个array中包含多个不同维度的array,但在tensorflow中一个tensor只能保 ...
- python函数返回局部变量,局部&全局变量同名问题
其实关于返回局部变量不只是python的问题,凡是使用堆栈结构处理函数的语言都会有这样的问题,切记不要返回局部变量.因为当创建函数的堆栈撤销,所有对局部变量的修改都灰飞烟灭.来看我的小例子 def h ...
- javascript学习笔记(二):定义函数、调用函数、参数、返回值、局部和全局变量
定义函数.调用函数.参数.返回值 关键字function定义函数,格式如下: function 函数名(){ 函数体 } 调用函数.参数.返回值的规则和c语言规则类似. <!DOCTYPE ht ...
- cmd获取python返回值
test.py代码如下: import urllib2 import sys try: f = urllib2.urlopen('http://www.baidu.com/',timeout = 10 ...
- python返回值的缺省设置
有时候并不需要返回所有的值,但是原始函数的return语句中又有较多参数时: 方法一:修改原始返回值,只返回需要的参数 方法二:如果原始函数时第三方库或者python自带库,则直接修改可能不太好,于是 ...
- python返回值内取出某一段数据的方法
面讲的方法只适用于返回值长度固定的内容,长度不固定,每次取得值就不会一样 比如,我们需要取出“提取码: y3rx ”“:”后面的“y3rx” 目标数据在内容的第5位到第9位,做左侧为第1位,冒号后面有 ...
- Python返回值不同格式的取值方式
例: { "success": true, "topic_id": "5c89021773798770589936b0"} 转换成text, ...
- Python3学习之路~3.1 函数基本语法及特性、返回值、参数、局部与全局变量
1 函数基本语法及特性 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 语法定义: d ...
- Python 基础之返回值与函数使用与局部变量和全局变量locals() 和 globals()
一.函数的返回值 return return: 自定义返回值,返回到哪里? 返回到函数的[调用处]1.return 后面可以跟上六个标准数据类型,除此之外,可以跟上 类对象,函数,如果不写return ...
随机推荐
- file-loader及url-loader的使用
file-loader主要用来处理图片,其实也可以在js和html及其他文件上,但很少那么使用,比如: require("file-loader?name=js/[hash].script. ...
- C#、ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 (转帖)
C#.ASP.NET获取当前应用程序的绝对路径,获取程序工作路径 ============================================ 使用 Application.Start ...
- 2.0(3)MongoDB数据导入导出
——————(1)数据导出———————— 导出为JSON格式 mongoexport -d '数据库' -c '表名' -o ***.json 导出为csv mongoexport -d '数据库' ...
- FPGA与simulink联合实时环路系列——实验一 测试
实验一 测试 实验内容 在simulink创建测试模块,通过测试模块产生信号,再传送到FPGA,FPGA读出后再将信号无处理传送回simulink进行显示.由此来测试整个硬件在环的功能是否正常,并且熟 ...
- java用selenium库控制chrome
一.简介 selenium是浏览器自动化工具,可以通过程序来控制浏览器行为,这就是selenium!你可以用它做任何你想做的事情.很多时候人们用它测试web应用,但selenium的用途绝不仅限于此. ...
- mysql select
select 查询: 赋值:赋值不能应用在where中,因为where操作的是磁盘上的文件,可以应用在having筛选中. 例:select (market_price-shop_price) as ...
- js兼容获取元素的样式
js获取元素的样式的兼容性处理: function getStyle(obj,attr){ return obj.currentStyle?obj.currentStyle[attr]:getComp ...
- [转]win 10 开始菜单(Win 7风格)增强工具 StartIsBack++ v1.3.4 简体中文特别版
Windows10开始菜单增强工具StartIsBack++现已更新至v1.3.4,最近主要修复在Win10周年更新版上恢复睡眠后任务栏通知中心按钮消失的问题.升级版对StartIsBack+全新构建 ...
- JS中匿名函数$(function(){ })和(function(){})()的区别
“$(function(){ });” Jquery语法的匿名函数,用于存放操作DOM对象的代码,执行其中代码时DOM对象已存在: (通过这样就可以在页面加载完成时通过ajax再异步加载一些数据) “ ...
- Javascript知识点记录(二)
Javascript入门易,精通难,基本上是共识的一个观点.在这个篇幅里,主要对一些难点进行记录. 鸭子类型 Javascript属于动态类型语言的一种.对变量类型的宽容,给了很大的灵活性.由于无需类 ...