Действительно ли неявные операторы и TypeConverters эквивалентны?

Сначала преобразуйте в строку, затем выполните обычное действие:

df.loc[df.col1.astype(str).str.contains(r"C") == False]
11
задан 18 December 2008 в 21:25
поделиться

4 ответа

Конвертеры типов намного более сложны, чем они кажутся; конвертер типов имеет доступ к диапазону метаданных о контексте преобразования - например, свойство, и возразите, что включены. Это используется для предоставления пользовательских возможностей на сценарий (думайте: связанный выпадает, т.е. Страна / графство / Город / и т.д.). Можно также указать конвертер типов на основе на свойство, которую я использую в большом количестве мест для обеспечения другой обработки различных свойств строки. Оператор рассматривал бы все строки тождественно.

Неявный оператор только знает о значении, которое преобразовывается, но имеет намного большую поддержку времени компиляции.

Или иначе: TypeConverter функция платформы с поддержкой платформы; операторы являются (прежде всего), функцией языка с поддержкой языка

Для добавления более - конвертеры типов (несмотря на имя) не просто преобразовывают:

  • они обеспечивают, метаданные подсвойства (думайте: расширение свойств на PropertyGrid)
  • они предлагают, доступные варианты для типа (думайте: выпадающий выбор на PropertyGrid)

Обратите внимание, что они используются в большем количестве мест, чем просто PropertyGrid, хотя;-p

8
ответ дан 3 December 2019 в 09:21
поделиться

Я не эксперт по этому.

Но на первый взгляд, это похоже - можно обеспечить преобразователи за пределами исходного класса (по сравнению с неявным оператором), и возможно можно определить несколько классов TypeConverter для того же самого (если Вы хотите получить различные взгляды для того же значения).

2
ответ дан 3 December 2019 в 09:21
поделиться

Просто любопытный: TypeConverters может работать с разработчиком Visual Studio, таким, что при обеспечении правильного TypeConverter для свойства как Списки или Массивы, можно установить их через разработчика. Неявные операторы также предоставляют эту услугу? В противном случае я подозреваю, что это отвечает на Ваш вопрос: они используются в платформе так, чтобы средства управления с помощью тех объектов могли работать с разработчиком.

1
ответ дан 3 December 2019 в 09:21
поделиться

Неявные операторы хороши, но также и они могут сбивать с толку. Я думаю, что, когда необходимо преобразовать от одного типа до другого его лучше всего, чтобы быть явными как, нет никакого вопроса относительно того, что продолжается.

Также неявные операторы, казалось, были зарезервированы для вещей, которые очень подобны, и неявное преобразование интуитивно. Но я предполагаю, что это все субъективно во всяком случае, используйте свое лучшее решение.

1
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: