簡體   English   中英

將可選參數作為字符串或aray傳遞

[英]passing optional arguments as strings or arays

我有此功能,按預期工作

import numpy as np
def my_fun(X, Weights = None):
     if Weights is None:
            np.random.normal(0,1,1)
     else:
            Weights + 1

因此,我可以使用my_fun(my_X)或my_fun(my_X,Weights = my_weights)調用my_fun,其中my_weights是一個數組。

但是,我需要在my_fun中包括第三個選項,理想情況下,我想將參數作為字符串傳遞。 這樣的事情。

import numpy as np
    def my_fun(X, Weights = None):
         if Weights is None:
                np.random.normal(0,1,1)
         elif Weights == 'My_string':
                np.random.beta(1,1,1)
         else:
                Weights + 1

如果我嘗試將my_fun稱為my_fun(my_X,Weights ='a'),則會收到以下錯誤: FutureWarning:逐元素比較失敗; 返回標量...

有什么想法如何重塑my_fun?

首先,我看不到X的用途,您永遠不會在函數中使用它。 那為什么要發送呢?

同樣,您需要在函數中return 您要退貨什么? 還不清楚。 也許有些事情。

def my_fun(X, Weights = None):
     if Weights is None:
           X = np.random.normal(0,1,1)
     elif Weights == 'My_string':
            X = np.random.beta(1,1,1)
     else:
            Weights + 1
     return Weights,X

print( my_fun([1,2,3],Weights = 'My_string') )

暫無
暫無

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

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