第四十五回 病关索大闹翠屏山 拚命三火烧祝家店-Python函数接受任意关键字参数

发布于:2024-02-29 ⋅ 阅读:(58) ⋅ 点赞:(0)

官府得到上报,被杀死的僧人是报恩寺的裴如海,旁边的头陀是寺后面的人叫胡道。孔目说他们两个互相杀死,没有其他人什么事,这件事也就过去了。

杨雄听说了这件事,知道是石秀干的,找石秀为自己错怪他道歉。两人商量了后面的行动。

第二天杨雄带着潘巧云和丫环,骗她们到东门外岳庙上香。三人上了翠屏山,到了一处古墓里,石秀出来与潘巧云对质,潘巧云无言以对。

杨雄问丫头迎儿,迎儿就把事情前前后后都说了。然后再问潘巧云,她也招了。于是杨雄就把这两人都杀了,然后跟石秀商量后面怎么办,石秀提议去梁山入伙。正巧鼓上蚤石迁也在,于是三人结伴一起去投梁山。

杨雄石秀做事就像函数调用一样有条理:

Python函数接受任意关键字参数

在Python中,一个函数可以接受任意数量的位置参数,这通常是通过在函数定义中使用一个特殊的语法来实现的,即使用星号(*)前缀。当函数定义中包含一个带有星号前缀的参数时,该函数就可以接受任意数量的位置参数,这些参数在函数内部会被收集到一个元组中。

def avg(first, *rest):
    print(first, rest)
    return (first + sum(rest)) / (1 + len(rest))

# Sample use
avg(1, 2) # 1.5
avg(1, 2, 3, 4) # 2.5

当我们编写函数时,有时候我们希望函数能够接受多个关键字输入,以便我们可以根据需要传递不同的参数。在Python中,我们可以通过使用** 开头的参数来实现。比如**attrs允许我们将不定数量的关键字参数传递给函数。它会将这些参数收集到一个字典中,其中关键字是字典的键,对应的值是关键字参数的值。以下是一个使用多个关键字输入的示例:

 

def make_element(name, year, **attrs):
    print("name:", name, "year:", year)
    for i in attrs:
        print(i, ":", attrs[i])


make_element(name="Jining", year="2024", attrsA="Qufu", attrsB="Liangshan")

在Python中,我们可以定义一个只接受关键字参数的函数,这样做可以使函数调用时的参数更加清晰,避免参数位置错误的问题。下面是一个例子:

def student_info(*, name, age, grade):
    print(f"学生姓名:{name}")
    print(f"学生年龄:{age}")
    print(f"学生年级:{grade}")

student_info(name="李华", age=14, grade="八年级")
# 如果像下面这样输入参数会报错
# student_info( "李华",  14,  "八年级")

 

杨雄,石秀,时迁三人到了独龙山,投宿一家酒店,石迁偷了店里的打鸣报晓的鸡吃,与店小二产生争执。三人打跑了店家,放火烧了房子。后面打斗中,石迁被抓住了。

杨雄石秀只好逃走,又遇到一个阔脸方腮,眼鲜耳大,貌丑形粗的大汉,大汉看见杨雄就拜,说:恩人怎么到这里来了?

欲知后事如何,且听下回分解。