Если бы Вы хотите другое поведение экспорта, "чистый" способ сделать это использовал бы другое имя модуля. Если Вы действительно ожидаете делать большое использование остроты, можно даже дать ему краткое название. Например, MMN.pm:
package MMN;
use My::Module::Name '/./';
use Exporter ();
@ISA = 'Exporter';
@EXPORT = @My::Module::Name::EXPORT_OK;
1;
Примечание, что Средство экспорта немного знало regex функцию; можно просто хотеть сделать
perl -MMy::Module::Name=/./ -e ...
Один из способов - использовать all
и понимание списка:
if all(e is None for e in myList):
print('all empty or None')
Это также работает для пустых списков. В более общем плане, чтобы проверить, содержит ли список только те элементы, которые оцениваются как False
, вы можете использовать any
:
if not any(myList):
print('all empty or evaluating to False')
Вы можете использовать all ()
функция для проверки - все элементы отсутствуют:
a = []
b = [None, None, None]
all(e is None for e in a) # True
all(e is None for e in b) # True
Вы можете напрямую сравнивать списки с ==
:
if x == [None,None,None]:
if x == [1,2,3]
Если вас интересуют элементы в списке, которые оцениваются как истинные:
if mylist and filter(None, mylist):
print "List is not empty and contains some true values"
else:
print "Either list is empty, or it contains no true values"
Если вы хотите строго проверять на Нет
, используйте фильтр (лямбда x : x не равно None, mylist)
вместо filter (None, mylist)
в приведенном выше операторе if
.