Python学习之参数

Posted SingSingaSong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习之参数相关的知识,希望对你有一定的参考价值。

参数

# coding=utf-8
# 函数的参数
def power(x):
    return x * x;
print power(5)

修改后

def power_1(x,n=2):     #默认参数可以简化函数的调用
    s=1
    while n > 0:
        n = n-1
        s = s * x
    return s
print power_1(2,3)

默认参数

def enroll(name,gender,age=6,city="beijing"):
    print (‘name:‘, name)
    print (‘gender:‘, gender)
    print (‘age:‘, age)
    print (‘city:‘, city)

enroll(‘bob‘,‘F‘)

def add_end(L=[]):
    L.append(‘END‘)
    return L
print add_end()
print add_end()
print add_end()
# 可变参数,传入的参数个数是可变的
# def calc(numbers):
def calc(*numbers):    #定义可变参数和定义一个list或tuple参数相比,仅仅在参数前面加了一个*号
    sum1 = 0
    for n in numbers:
        sum1 = sum1 + n*n
    return sum1
print calc(1,2)
print calc()
# 在list或tuple前面加一个*号,把list或tuple的元素变成可变参数传进去
nums = [1, 2, 3]
print calc(*nums)

关键字参数

**extra表示把extra这个dict的所有key-value用关键字参数传入到函数的**kw参数

def person(name, age, **kw):
    print(‘name:‘, name, ‘age:‘, age, ‘other:‘, kw)
person(‘Micheal‘,20)

extra = {‘city‘: ‘Beijing‘, ‘job‘: ‘Engineer‘}
person(‘Jack‘, 24, **extra)     
print person

命名关键字参数

关键字参数,函数的调用者可以传入任意不受限制的关键字参数。至于到底传入了哪些,就需要在函数内部通过kw检查。

def person1(name,age,**kw):
    if ‘city‘ in kw:
        pass
    if ‘job‘ in kw:
        pass
    print(‘name:‘,name,‘age:‘,age,‘other:‘,kw)

调用者仍可以传入不受限制的关键字参数:

print person1(‘Jack‘, 24, city=‘Beijing‘, addr=‘Chaoyang‘, zipcode=123456)

要限制关键字参数的名字,就可以用命名关键字参数

命名关键字参数需要一个特殊分隔符,后面的参数被视为命名关键字参数

以上是关于Python学习之参数的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之函数篇

python学习之函数阶段

Python学习之参数

python学习之第八篇:Python中的函数基础

python学习之参数传递

python学习之函数