Değişkenin Yok ya da numpy.array olub olmadığını kontrol edərkən ValueError

Dəyişən yox və ya numpy.array olub olmadığını yoxlamaq istəyirəm. Bunu etmək üçün check_a funksiyasını həyata check_a .

 def check_a(a): if not a: print "please initialize a" a = None check_a(a) a = np.array([1,2]) check_a(a) 

Lakin bu kod ValueError çağırır. Birbaşa yol nədir?

 ValueError Traceback (most recent call last) <ipython-input-41-0201c81c185e> in <module>() 6 check_a(a) 7 a = np.array([1,2]) ----> 8 check_a(a) <ipython-input-41-0201c81c185e> in check_a(a) 1 def check_a(a): ----> 2 if not a: 3 print "please initialize a" 4 5 a = None ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all() 
30
22 апр. rkjt50r983 tərəfindən təyin olunub Apr 22 2016-04-22 05:48 '16 'da 5:48 ' də 2016-04-22 05:48 'də
ответ 1 cavab

Yalnız bunu!

 if a is None: ... else: ... 

Və ya daha aydın olmaq istəyirsinizsə:

 # be careful not to check for np.array but for np.ndarray! if type(a) is np.ndarray: ... else: ... 

Ayrıca, isinstance istifadə isinstance , bu isinstance alt sinifləri üçün də True qayıdacaqsınız (əgər istəsəniz):

 # be careful not to check for np.array but for np.ndarray! if isinstance(a, np.ndarray): ... else: ... 
41
22 апр. Cavab Jerfov2 Apr 22 verilir 2016-04-22 05:54 '16 at 5:54 2016-04-22 05:54

bağlı digər suallar tags və ya sual