武松回到孟州城,来到张都监后花园墙外,这是一个马院,问清楚后槽张团练他们三人还在鸳鸯楼吃酒,直接一刀杀了。武松从后门这里爬过墙,来到了厨房,将两个还在服侍的丫环杀了。
武松认得路,蹑手蹑脚上来了鸳鸯楼,听见蒋门神说:多亏了相公给小人报了仇。张都监说:不是看在兄弟张团练面上,谁肯干这事?你虽然花了点钱,但是能帮你除掉他。张团练也说:四个对付他一个,稳了。
武松是谁,武松简直是水浒武力天花板。同样的,python也是非常优秀的编程语言,比方如下小技巧:
python可接受任意数量参数的函数
本部分内容来自:7.1 可接受任意数量参数的函数 — python3-cookbook 2.0.0 文档
问题
你想构造一个可接受任意数量参数的函数。
解决方案
为了能让一个函数接受任意数量的位置参数,可以使用一个*参数。例如:
def avg(first, *rest): return (first + sum(rest)) / (1 + len(rest)) # Sample use avg(1, 2) # 1.5 avg(1, 2, 3, 4) # 2.5在这个例子中,rest是由所有其他位置参数组成的元组。然后我们在代码中把它当成了一个序列来进行后续的计算。
为了接受任意数量的关键字参数,使用一个以**开头的参数。比如:
import html def make_element(name, value, **attrs): keyvals = [' %s="%s"' % item for item in attrs.items()] attr_str = ''.join(keyvals) element = '<{name}{attrs}>{value}</{name}>'.format( name=name, attrs=attr_str, value=html.escape(value)) return element # Example # Creates '<item size="large" quantity="6">Albatross</item>' make_element('item', 'Albatross', size='large', quantity=6) # Creates '<p><spam></p>' make_element('p', '<spam>')在这里,attrs是一个包含所有被传入进来的关键字参数的字典。
如果你还希望某个函数能同时接受任意数量的位置参数和关键字参数,可以同时使用*和**。比如:
def anyargs(*args, **kwargs): print(args) # A tuple print(kwargs) # A dict使用这个函数时,所有位置参数会被放到args元组中,所有关键字参数会被放到字典kwargs中。
武松听了,火冒三丈,进门对着蒋门神就劈,把椅子都砍翻了。张都监才来得及动脚,也被武松齐耳朵根连脖子砍了一刀。张团练提起一把椅子抡过来,武松接住,一下把人推倒,一刀就把头割下来了。然后再把蒋门神和张都监的头也割下来,在墙上用血写下:杀人者,打虎武松也!
武松把桌上器皿踩扁,揣几件在怀里。然后把夫人连两个亲随,玉兰连两个小的都一起杀了。
武松连夜越城逃走,进入一个小小的古庙,想躺下休息,结果被挠钩勾住,然后被人绑了。多亏遇到了张青孙二娘两口子,武松就把醉打蒋门神,大闹飞云浦,血溅鸳鸯楼讲了一遍。
武松在张青家休息了三五天,张青推荐武松去二龙山。走之前给了武松一个铁戒箍,一身衣服,一本度牒,一串一百单八颗人头骨的佛珠串,武松就穿扮上,特别合身,张青孙二娘都说这简直是前世注定的。
武松离开了十字坡,来到了蜈蚣岭,发现坟地里寺庙不正常。
欲知后市如何,且听下回分解。