码迷,mamicode.com
首页 > 编程语言 > 详细

python函数

时间:2016-12-24 14:03:49      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:组合   bsp   函数   lob   size   接收   other   closure   定义函数   

一、基本语法

python的 基本语法为:

def func_name(arguments):
     statements  #函数体
     return x,y    #返回值

x,y = func_name(para)

 

 

二、作用域LEGB

python的作用域一共有4种,分别为:

  • L(local)局部作用域
  • E(enclosing)闭包函数外的函数中
  • G(global)全局作用域
  • B(built-in)內建作用域

以 L-->E-->G-->B 规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。

 

闭包 (closure)

闭包的定义:如果在一个内部函数里,对在外部函数内(但不在全局作用域)的变量进行应用,那么内部函数被认为是闭包(closure)

 

三、参数

python的参数可分为4类:

  • 必选参数
  • 默认参数
  • 可选参数
  • 关键字参数
1、必选参数
即与其他语言一样的调用方式
 
2、默认参数
例如:
def power(x,n=2):
     if n==0:
          return 1
     else:
          return x*power(x,n-1)
其中n=2即是默认参数,使用power(5)即使用默认参数n=2返回值25,使用power(5,3)时n使用传进去的值返回125
 
3、可变参数
即传入的参数是可变的. 定义即在参数前面加一个*
定义方法如下:
def calc(*numbers):
      sum = 0
      print numbers
      for n in numbers:
           sum += n
           return sum
>>> calc(1,9)
(1, 9) #在内部numbers接收到的是一个tuple
10
在函数内部,参数numbers接收到的是一个tuple
 
4、关键字参数
关键字参数允许你传入0个或者任意个含参数名的参数,这类关键字参数在函数内部自动组装为一个dict。关键字参数的定义方法是在参数前面加两个*。
def person(name,age,**others):
      print others
      print name:,name,age:,age,others:,others
>>> person(‘huzh‘,24,city=‘BeiJing‘)
{‘city‘: ‘BeiJing‘}
name: huzh age: 24 others: {‘city‘: ‘BeiJing‘}
 

参数组合

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

python函数

标签:组合   bsp   函数   lob   size   接收   other   closure   定义函数   

原文地址:http://www.cnblogs.com/max-hu/p/6217008.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!