簡體   English   中英

如何在Iron Python中使用重載?

[英]How to use Overloading in Iron Python?

我想在Iron Python中使用重載,但似乎不起作用:

import sys
import clr

def  af(a, b):
     c = a+b
     print c
     return c
def af(j):
  y = j*j
  print y
  return y

 af(6,7)
 af(5)

我收到一個錯誤= \\有沒有辦法使用重載? 我的目的是編寫一個函數: foo(doAction,numTimes) ,默認情況下,如果我使用foo(action) :它將執行一次,否則我將編寫: foo(action,6)

非常感謝!!!

IronPython可以在CLR上運行,但這不能成為C#。 在任何種類的Python中,您只能定義一次函數。 定義一個函數實際上只是在分配一個名稱,因此在代碼中,您將一個函數分配給af ,然后將另一個函數分配給相同的名稱,因此第一個函數被簡單地丟棄。

在Python中執行此操作的方法是通過默認參數:

def aj(a, b=None):
    if b is not None:
        result = a + b
    else:
        result = a * a
    print result
    return result

當然,對於您的實際用例,您可以定義默認值為1的numtimes

def foo(action, numtimes=1):
    # whatever

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM