你不能这么做。至少,不在同一个命名空间中(即:同一个模块或同一个类)。似乎您正在尝试用一种语言来做您所学的东西,并试图将其应用于python。在
相反,您可以让Add接受可变数量的参数,这样您就可以根据传入的内容执行不同的操作。在def Add(self, *args):
if len(args) == 1:
item = args[0]
self.cards.insert(0, item)
elif len(args) == 2):
listCards, numCards = args
for i in numCards:
card = listCards.GetCard(i)
self.cards.insert(0, card)
我个人认为最好有两个函数,因为这样可以避免歧义和提高可读性。例如,AddCard和{}。在
或者,也许更好的是,你可以用一个函数来处理任意数量的卡片。例如,您可以定义Add来获取一个卡片列表,然后将它们全部相加:
^{pr2}$
然后,用一张卡打电话:self.Add(listCards.GetCard(0))
。。。或者,卡片列表:list_of_cards = [listCards.GetCard(i) for i in range(len(listCards))]
self.Add(*list_of_cards)
您似乎要求执行的操作称为函数重载,这不是Python支持的。有关python中函数重载的更多信息,请参阅以下问题:Python function overloading