当前位置: 首页 > 面试题库 >

python中的函数重载了吗?

邓鸿彩
2023-03-14
问题内容

Python中是否可能有重载函数?在C#中,我会做类似的事情

void myfunction (int first, string second)
{
//some code
}
void myfunction (int first, string second , float third)
{
//some different code
}

然后当我调用该函数时,它将根据参数的数量在两者之间进行区分。是否可以在Python中做类似的事情?


问题答案:

编辑 有关Python
3.4中新的单调度通用函数,请参见http://www.python.org/dev/peps/pep-0443/

通常,您不需要在Python中重载函数。Python是动态类型的,并且支持函数的可选参数。

def myfunction(first, second, third = None):
    if third is None:
        #just use first and second
    else:
        #use all three

myfunction(1, 2) # third will be None, so enter the 'if' clause
myfunction(3, 4, 5) # third isn't None, it's 5, so enter the 'else' clause


 类似资料:
  • 问题内容: 我知道Python不支持方法重载,但是我遇到了一个似乎无法用一种很好的Pythonic方法解决的问题。 我正在制作一个角色需要射击各种子弹的游戏,但是如何编写用于创建这些子弹的不同功能?例如,假设我有一个函数,该函数创建一个以给定速度从A点移动到B点的子弹。我会写一个像这样的函数: 但是我想编写其他创建项目符号的功能,例如: 以此类推。有没有一种更好的方法可以在不使用太多关键字参数的情

  • 问题内容: 就像这样说: http://web.archive.org/web/20090624083829/http://mail.python.org/pipermail/python- list/2003-May/206149.html Python中不存在函数重载。 就我而言,这也是一种面向对象的语言,因此对我来说是一个很大的障碍。最初,我发现无法区分参数类型很困难,但是Python的动态

  • 问题内容: 覆盖和过载之间有什么区别? 问题答案: 重载:在编译时根据指定参数的数量和类型选择方法 签名 覆盖:在执行时根据目标对象的实际类型(与表达式的编译时类型相对)选择方法 实现 例如: 这两个调用都是 重载的 示例。有两种方法,称为,编译器确定要调用的签名。 第一次调用是 覆盖 的示例。编译器选择签名“ foo(int)”,但是在执行时,目标对象的类型确定要使用的实现应为in中的一个。

  • 问题内容: 对象的可评估字符串表示形式(可以它,这意味着它是评估为Python对象的字符串表示形式) 换一种说法: 问题: 为什么我得到双引号?(这样做的时候我不懂) 为什么我得到时却得到而不是是对象? 问题答案: 因此,名称x将附加到字符串。例如,当你致电时,解释器放而不是,x然后致电。 实际调用一个魔术方法的,这给串包含该值的表示分配给。因此,它会在字符串”“中返回结果”。的想法是给出一个包含

  • 问题内容: 在PHP中,函数重载和函数覆盖是什么意思。两者之间有什么区别?无法弄清楚它们之间有什么区别。 问题答案: 重载 定义的函数具有相似的签名,但具有不同的参数。 覆盖 仅与派生类相关,派生类中的父类已定义了一个方法,而派生类希望 覆盖 该方法。 在PHP中,您只能使用magic方法重载方法。 覆盖 的示例:

  • 问题内容: 经典(非js)重载方法: Javascript不允许使用同一个名称定义多个功能。这样,这样的事情就会出现: 除了传递带有重载的对象之外,JavaScript中是否有更好的解决方法来实现函数重载? 传递重载会很快导致函数变得过于冗长,因为每个可能的重载都需要一个条件语句。使用函数来完成那些条件语句的内部会导致带有范围的棘手情况。 问题答案: Javascript中的参数重载有多个方面:

  • 本文向大家介绍PowerShell中的函数重载示例,包括了PowerShell中的函数重载示例的使用技巧和注意事项,需要的朋友参考一下 在PowerShell中,我们可以使用Function关键字来定义一个函数,比如: 这个名为Get-Data的函数接收一个int类型的参数$data,直接将其返回。那么,我同时还需要一个接收string类型的Get-Data函数怎么办?方法比较奇怪,至少和传统的C

  • null 我不太确定如何处理我的代码,以下是我得到的: 我只是不知道我应该打什么。我相信我已经完成了第一个重载构造函数,但我对此还是新手。 那么,我应该做些什么来使重载构造函数工作呢? 我对Java和面向对象编程非常陌生。