`
李灵晖-raylee
  • 浏览: 127089 次
博客专栏
Group-logo
从头认识java
浏览量:0
文章分类
社区版块
存档分类
最新评论

零基础学python-15.2 分解函数

 
阅读更多

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

我们以一小段代码为例:

>>> 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-目录


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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics