朋友们,如需转载请标明出处:https://blog.csdn.net/jiangjunshow

声明:在人工智能技术教学期间,不少学生向我提一些python相关的问题,所以为了让同学们掌握更多扩展知识更好地理解AI技术,我让助理负责分享这套python系列教程,希望能帮到大家!由于这套python教程不是由我所写,所以不如我的AI技术教学风趣幽默,学起来比较枯燥;但它的知识点还是讲到位的了,也值得阅读!想要学习AI技术的同学可以点击跳转到我的教学网站。PS:看不懂本篇文章的同学请先看前面的文章,循序渐进每天学一点就不会觉得难了!

def语句会创建一个函数对象并将其赋值给一个变量名(在python中函数也属于一种对象)。Def语句一般的格式如下所示。

def <name>(arg1,arg2,...argN):

    <statements>

def包含了首行并有一个代码块跟随在后边,这个代码块通常都会缩进。def的首行定义了函数名,赋值给了函数对象,并在括号中包含了0个或以上的参数(有些时候称为是形参)。

函数主体往往都包含了一条return语句。

def <name>(arg1,arg2,...argN):

    ...

    return <value>

Python的return语句可以在函数主体中的任何地方出现。它表示函数调用的结束,并将结果返回至函数调用处。return语句包含一个对象表达式,这个对象给出的函数的结果。return语句是可选的。如果它没有出现,那么函数将会在控制流执行完函数主体时结束。从技术角度来讲,一个没有返回值的函数自动返回了none对象。

Python的def语句实际上是一个可执行的语句:当它运行的时候,它创建一个新的函数对象并将其赋值给一个变量名。(请记住,Python中所有的语句都是实时运行的,没有像独立的编译时间这样的流程)因为它是一个语句,一个def可以出现在任一语句可以出现的地方——甚至是嵌套在其他的语句中。例如,尽管def往往是包含在模块文件中,并在模块导入时运行,但是函数还可以通过嵌套在if语句中去实现不同的函数定义,这样也是完全合法的。

if test:

   def func():          # Define func this way

       ...

else:

   def func():          # Or else this way

       ...

...

func()                  # Call the version selected and built

它在运行时简单地给一个变量名进行赋值。与C这样的编译语言不同,Python函数在程序运行之前并不需要全部定义。更确切地讲,def在运行时才进行评估,而在def之中的代码在函数调用后才会评估。

也可以将函数赋值给一个不同的变量名,并通过新的变量名进行了调用。

othername = func        # Assign function object

othername()             # Call func again

就像Python中其他语句的一样,函数仅仅是对象。实际上,除了调用以外,函数还允许任意的属性附加以供随后使用:

def func(): ...         # Create function object

func()                  # Call object

func.attr = value       # Attach attributes
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐