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学习之参数的主要内容,如果未能解决你的问题,请参考以下文章