设为首页 收藏本站
查看: 675|回复: 0

[经验分享] 零基础学python-15.2 分解函数

[复制链接]

尚未签到

发表于 2017-5-5 12:50:54 | 显示全部楼层 |阅读模式
  这一章节我们来说说函数的一些主要概念
  我们以一小段代码为例:

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





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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-373503-1-1.html 上篇帖子: 【Python真的很强大】开发简易在线搜索 下篇帖子: Python中函数定义的关键参数问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表