文档章节

零基础学python-15.2 分解函数

raylee2015
 raylee2015
发布于 2015/09/17 16:40
字数 647
阅读 4
收藏 0

这一章节我们来说说函数的一些主要概念

我们以一小段代码为例:

>>> def test():
	pass

>>>

1. def是可执行的代码

>>> test()
>>>

我们调用test方法,尽管什么都没有,但是test已经执行了


2.def创建了一个对象并将其赋值给某一变量

其实python将pass这个代码封装成一个对象,然后赋值给test这个变量,主要调用这个变量有些特殊,需要加上小括号


3. lambda创建一个对象但将其作为结果返回(暂时不懂lambda,无法解释)


4.return将一个结果返回给调用者

>>> def test():
	return "这是一个测试方法"

>>> test()
'这是一个测试方法'
>>>


5.yield向调用者发回一个结果对象,但是记住它离开的地方(暂时不懂yield,无法解释)


6. global声明了一个模块级别的变量并且被赋值

我们把下面的代码保存为test.py文件,

def test():
	global x
	x=1
	print(x)
	b=2
	print(b)
test()
x=50
print(x)
print(b)

然后运行,得出下面结果:

>>> ================================ RESTART ================================
>>> 
1
2
50
Traceback (most recent call last):
  File "C:/Python34/test.py", line 10, in <module>
    print(b)
NameError: name 'b' is not defined
>>>

从异常来看,找不到b这个变量,但是我们在回头看代码,x也是这样的定义,但是x却存在,而b就不存在,所以global定义的变量是模块级别的,整个模块都可以使用


7.nonlocal声明将要赋值的一个封闭的函数变量(暂时不懂nonlocal,无法解释)


8.函数通过赋值(对象引用)传递

>>> def test(x):
	print(type(x))
	print(id(x))
	print(x)

	
>>> test(1)
<class 'int'>
505991632
1
>>>


9.参数、返回值以及变量并不需要声明

我们从上面的方法也可以看见,对于参数、返回值、变量我们都没有做出声明,都是运行的时候有python自己决定


10.函数需要注意的地方:

当函数运行之后,因为他已经在内存里面,我们可以随意增加他的属性

>>> def test():
	name='ray'

	
>>> test()
>>> test.name='lee'
>>> print(test.name)
lee
>>> test.mind='123'
>>> print(test.mind)
123
>>>

因为本人学java出身,所以个人不建议这样使用


总结:这一章节主要说明函数的一些重要概念以及需要注意的地方


这一章节就说到这里,谢谢大家

------------------------------------------------------------------

点击跳转零基础学python-目录

 


版权声明:本文为博主原创文章,未经博主允许不得转载。

本文转载自:http://blog.csdn.net/raylee2007/article/details/48351725

raylee2015
粉丝 6
博文 265
码字总数 44224
作品 0
江门
私信 提问
Python猫荐书系列之七:Python入门书籍有哪些?

本文原创并首发于公众号【Python猫】,未经授权,请勿转载。 原文地址:https://mp.weixin.qq.com/s/ArN-6mLPzPT8Zoq0Na_tsg 最近,猫哥的 Python 技术学习群里进来了几位比较特殊的同学:一...

豌豆花下猫
05/26
61
0
自学与转行程序员,必学计算机专业课 - 知乎

接触过很多自学或者转行到程序员行业的同学。发现很多的同学,虽然能够完成功能模块的代码,但却对计算机专业的基础很不扎实。并不能理解代码设计的意义,久而久之,就沦为了业务代码的搬运工...

编程教室
昨天
0
0
零基础掌握人工智能(AI)核心语言:Python

1.谁适合本课程? 不管你是想掌握自己人生的第一门编程语言,还是以后想从事数据分析、大数据、机器学习、深度学习、人工智能相关的工作,Python都是你必不可少的工具。本课程零基础即可加入...

菜鸟窝
08/02
0
0
Python书单走一波,敢来我就敢送

入门Python看什么书好?下面就跟着一起来看看Python入门书籍推荐。 最近几年,Python编程语言可谓是大火起来。无论是在人工智能中的运用,在云计算中的不可获取,或者是载入中学的教学课程之中...

weixin_44099558
2018/12/30
0
0
家里断网好无聊,正好最近学了Python来破解下邻居的WiFi试试!

家里WiFi没网了,贼无聊,正好隔壁几家的邻居都出去玩了,偷偷的破解他们的WiFi用用应该不要紧的~ Python是我刚学的,破解WiFi也是临时想法,不过Python的学习资料一大把是真的!一个刚从培训...

Python小哥哥
2018/09/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ERC-777以太坊新代币标准解读

ERC777是一个新的高级代币标准,可以视为ERC20的升级版本,因此它解决了ERC20以及ERC223存在的一些问题,开发者可以根据自己的具体需求进行选型。 1、使用ERC820进行合约注册 有别于ERC20的自...

汇智网教程
55分钟前
4
0
代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
14
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部