簡體   English   中英

如何實現具有不同參數類型的python函數

[英]How implement a python function with different parameter types

我需要用python實現一個兩個參數函數。 參數類型可以是:(String,String),(String,List)或(List,List)。 在Java中我會使用重載來管理這種情況但是在python中我只能在下一個解決方案中思考:

def myFunction(param1, param2):
     if isinstance(param1, basestring) and isinstance(param2, basestring):
        # implementation 1
     elif isinstance(param1, basestring) and isinstance(param2, list):
        # implementation 2
     elif ...

     else:
         raise TypeError

這是最好的方法嗎? 我是python的新手。

謝謝。

鴨子打字意味着測試方法,而不是使用isinstance() 您打算如何處理輸入?

例如,如果您接受一個字符串,那么將該字符串拆分為換行符並使用它,就像列表一樣,測試.splitlines()

if hasattr(arg1, 'splitlines'):
    arg1 = arg1.splitlines()
if hasattr(arg2, 'splitlines'):
    arg2 = arg2.splitlines()
# now arg1 and arg2 are presumed to be lists.

暫無
暫無

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

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