刚开始学习Python,Python相对于java确实要简洁易用得多。内存回收类似hotspot的可达性分析, 不可变对象也如同java得Integer类型,with函数类似新版本C++的特性,总体来说理解起来比较轻松。只是函数部分参数的"*"与"**"等问题。着实令人迷糊了一把,弄清概念后写下此文记录下来,也希望本文能够帮助其他初学者。
举个例子来说明这4种调用方式得区别:
举个例子说明,顺序赋值(positional_args)和列表赋值(*tuple_grp_nonkw_args)的罗辑先后关系:
以下举例说明上述规则:
函数总是先处理arg类型参数,再处理*arg和**arg类型的参数. 因为*arg和**arg针对的调用参数类型不同,所以不需要考虑他们得顺序.
?
--------------------------------------分割线 --------------------------------------