0
我想編寫接受數字參數x
的函數,這些函數可以是未定義的,比如x = 1
或大小,列表,元組或ndarray,如x = np.array([1,2])
。有沒有一種好的方法來編寫處理這兩種情況的代碼?如何處理可以調整大小或未調整大小的Python對象
作爲具體的例子,假設目標是廣播x
成(預定形狀xshape
的)的陣列如果x
只是一個數字,並且如果x
是用錯誤的形狀的陣列,以返回一個錯誤。
import numpy as np
import sys
if np.shape(np.atleast_1d(x)) == (1,):
x = np.ones(xshape) * x
elif np.shape(x) != xshape:
sys.exit("wrong shape for x")
上面的代碼似乎工作,除了嵌套困難x = [[2]]
。它似乎也違背了一些推薦的做法,如try/except
。任何建議感激。
請注意,'<>'運算符已被棄用,並且在3.x中消失了 - 使用'!='代替。類型(x) – delnan
不夠? –
@Radio我見過'type(x)',因爲有太多的情況,並且違背了所謂的「鴨子打字」。如果未定義的數字是「float」,「int」等,並且大小集合是「ndarray」,「list」或「tuple」,我似乎可以工作。 –