Python中参数的调用方式

1、位置参数调用(位置必须对应)


def print_student(name, age):
    print("name: %s, age: %d" % (name, age))
print_student("xiaohong", 22)

2、关键字参数调用(位置可以随意)


print_student(name="xiaohong", age=22)

3、必须使用关键字参数调用(不定长参数,缺省参数必须使用关键字参数调用)


def print_student(*, name, age):
    print("name: %s, age: %d" % (name, age))
print_student(name="xiaohong", age=22)

python中的缺省参数


1、如果一个函数中有缺省参数,缺省参数后面的参数都必需是缺省参数
def print_info(name, id, age=18):
    print("name: {}, id: {}, age: {}".format(name, id, age))
print_info("xiaoming", "001")

>>>name: xiaoming, id: 001, age: 18

python 中的不定长参数

def addNums(new_list):
    sum = 0
    for i in new_list:
        sum += i
    return sum


# *不定长参数元组
# 不定长参数元组是一个缺省参数,(默认值是为空的元祖)


def addNums1(*args):
    sum = 0
    for i in args:
        sum += i
    return sum
print(addNums1(1, 2, 3, 4))

def func1(*args):
    print(type(args))
    print(args)

# 不定长参数位置传递, 直接给出元组或者列表可以直接使用*


a = ("xiaohua", 21)
b = ["xiaoming", 22]
func1(*a)
func1(*b)

>>><class 'tuple'>
('xiaohua', 21)
<class 'tuple'>
('xiaoming', 22)

# 不定长参数传递字典,是一个缺省参数


def func1(**kwargs):
    print(type(kwargs))
    print(kwargs["name"])
    print(kwargs["age"])

func1(name="xiaoyue", age="11", sex="femeal")
>>><class 'dict'>
xiaoyue
11

# 不定长参数关键字传递, 直接给出字典,可以使用**
def func1(**kwargs):
    print(type(kwargs))
    print(kwargs["name"])
    print(kwargs["age"])


a = {"name": "xiaoming",
     "age": 22}
func1(**a)

>>><class 'dict'>
xiaoming
22

# 函数参数顺序规则


def func(a, b, c=10, *args, **kwargs):
    """
    函数参数顺序:正常的参数,缺省参数,不定长参数元祖(缺省跟元组可以换位置),不定长参数字典
   kwargs:应该放在参数最末尾    """

    print("a: ", a)
    print("b: ", b)
    print("c: ", c)
    print("args: ", args)
    print("kwargs: ", kwargs)


func(1, 2, 3, 4, 5, 6, name="yang")
func(1, 2)
func(1, 2, 3, 4, 5, 6, name="yang", a=2)  # key名不应跟形参名相同


 

猜你喜欢

转载自blog.csdn.net/vivian_wanjin/article/details/81805607
今日推荐