larken

勤奋的人生才有价值

导航

python函数

##############
# 函数的参数  #
##############
# (1)必需的参数:必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
def f(name,age):
    print('I am %s,I am %d'%(name,age))
f('alex',18)
f('alvin',16)
# (2)关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
def f(name,age):
    print('I am %s,I am %d'%(name,age))
# f(16,'alvin') #报错
f(age=16,name='alvin')
# (3)缺省参数(默认参数):调用函数时,缺省参数的值如果没有传入,则被认为是默认值。
def print_info(name,age,sex='male'):
    print('Name:%s'%name)
    print('age:%s'%age)
    print('Sex:%s'%sex)
    return
print_info('alex',18)
print_info('铁锤',40,'female')
# (4)不定长参数:你可能需要一个函数能处理比当初声明时更多的参数。
def add(*tuples):
    sum=0
    for v in tuples:
        sum+=v
    return sum
print(add(1,4,6,9))
print(add(1,4,6,9,5))
# 加了星号(*)的变量名会存放所有未命名的变量参数。而加(**)的变量名会存放命名的变量参数
def print_info(name,*args,**kwargs):#def print_info(name,**kwargs,*args):报错
    print('Name:%s'%name)
    print('args:',args)
    print('kwargs:',kwargs)
    return
print_info('alex',18,hobby='girl',nationality='Chinese',ability='Python')

#################
# 函数的作用域:  #
#################
# L:local,局部作用域,即函数中定义的变量;
# E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;
# G:globa,全局变量,就是模块级别定义的变量;
# B:built-in,系统固定模块里面的变量,比如int, bytearray等。

 

posted on 2019-03-20 00:01  larken  阅读(203)  评论(0)    收藏  举报