【发布时间】:2011-07-02 01:33:34
【问题描述】:
如何在一个类中声明几个同名但参数数量不同或类型不同的方法?
我必须在下面的课程中改变什么?
class MyClass:
""""""
#----------------------------------------------------------------------
def __init__(self):
"""Constructor"""
def my_method(self,parameter_A_that_Must_Be_String):
print parameter_A_that_Must_Be_String
def my_method(self,parameter_A_that_Must_Be_String,parameter_B_that_Must_Be_String):
print parameter_A_that_Must_Be_String
print parameter_B_that_Must_Be_String
def my_method(self,parameter_A_that_Must_Be_String,parameter_A_that_Must_Be_Int):
print parameter_A_that_Must_Be_String * parameter_A_that_Must_Be_Int
【问题讨论】:
-
在试验了一会儿之后,我发现在Python中编写多个同名的函数似乎是有效的,但是每次编写另一个同名的函数时,解释器完全忘记了具有该名称的先前函数。
-
@TomWillis 我认为您链接的标题应该说“Python 不是 OOP 语言。”多态性不是 Java 概念。它是 OOP 的 4~5 个核心原则之一。曾经有一段时间,这些被认为是一种语言需要公开的最小 api,以便称自己为面向对象。半实现的功能集只是通过强制变通方法来要求反模式。我仍然喜欢这种语言。它只需要选择一条车道并保持车轮稳定。
标签: python overloading