В зависимости от того, насколько распределена ваша проблема, решение из Python Guide (и в конечном счете из запросов источника ) может работать: попробуйте импортировать NullHandler и в except ImportError
, определите класс следующим образом:
# Set default logging handler to avoid "No handler found" warnings.
import logging
try: # Python 2.7+
from logging import NullHandler
except ImportError:
class NullHandler(logging.Handler):
def emit(self, record):
pass
logging.getLogger(__name__).addHandler(NullHandler())
Хотя, если вы используете пространство имен журналов, вы захотите вставить класс:
# in the except clause, after the class def:
logging.NullHandler = NullHandler
Поскольку то, в чем Вы нуждаетесь, List<string>
, является, вероятно, самым универсальным. StringCollection
было удобно в 1,1, когда (без дженериков) Вам были нужны определенные классы для введенных наборов. Collection<string>
удобно, если Вы захотите разделить его на подклассы для обеспечения проверки и т.д.
Так или иначе, в 3,5, то LINQ обеспечит много дополнительных методов для них - но без LINQ, List<T>
имеет больше функций (Find
, Sort
, и т.д.)
List<T>
было бы самым эффективным.
Collection<T>
класс является просто оберткой для другого типа списка, конструктор без параметров инициализирует Collection<T>
с List<T>
.
ArrayList
по существу то же как List<object>
, таким образом, необходимо было бы бросить объекты к String
при чтении из него.
А StringCollection
является просто безопасной с точки зрения типов оберткой для ArrayList
.