[英]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.