Python的参数传递方式是:位置,默认值,变量参数,关键词参数。
传值究竟是函数的值传递还是引用传递,要分情况:
不变参数用值传递:像整型和string这样的不变对象是通过拷贝来传递的,因为你根本就不可能改变原来的不变对象。
变量参数是引用传递:例如List,dictionary等对象类似于C语言中通过引用传递的对象,C语言中则类似于用指针传递数组。
功能重载主要用于解决两个问题。
第 一,变量参数类型。
第二,变量参数数目。
此外,一个基本的设计原则就是,只要两个函数的功能完全相同,除了参数类型和参数数目不同之外,它们的功能都是一样的,这时才使用函数重载,如果两个函数的功能实际上是不同的,那么就不应该使用重载,而应该使用名称不同的函数。
在情况1中,函数的功能是一样的,但参数类型不同,python是如何处理的?解决办法是根本不需要处理,因为python可以接受任何类型的参数,而且如果函数具有相同的功能,那么python中不同的参数类型很可能是相同的代码,因此无需制作两个不同的函数。
在第二种情况中,函数的功能是一样的,但是参数的数量不同,python是如何处理的?众所周知,答案就是默认的参数设置。将这些缺少的参数设置为默认值就可以解决这个问题。由于我们假定函数具有相同的功能,因此需要使用这些缺失的参数。
考虑到情况1和情况2都有解决方案,python自然不需要函数重载。本文来源:
责任编辑:双子树编辑团队