Проверка типов Java и Python

1

В чем разница между тем, как Java и Python реализуют проверку типов?

А как они реализуют абстрактные типы данных?

Теги:
types

2 ответа

2
Лучший ответ

Java делает.

Python этого не делает.

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

Редактировать на основе вопросов в комментариях:

Это позволяет вам определить класс, который может использоваться большинством функций, которые ожидают, что словарь или список или другой тип очень легко. Поэтому, если я хочу создать особый вид списка, то при повторении его, возвращает объекты в пользовательском порядке, все, что мне нужно сделать, это объявить класс, который поддерживает __getitem__, __iter__ и несколько других методов, и другие классы будут использовать его так же, как если бы это был список.

Информацию об абстрактных базовых классах в Python см. По адресу http://docs.python.org/glossary.html#term-abstract-base-class. При использовании они очень похожи на абстрактные базовые классы в Java.

  • 0
    так что бы сделать Java лучше, а? Похоже, это больше места для ошибки с питоном
  • 2
    Это особенность. Это дает вам больше силы. Вы можете определить класс, который будет действовать как список, и может использоваться любым методом, который принимает список. Вы можете создать класс, который действует как файл и позволяет передавать данные в код или перехватывать данные из кода, который ожидает объект файла.
Показать ещё 4 комментария
8

Python, как и Ruby, использует Duck Typing, который является стилем динамической типизации. Java, очевидно, статически типизирован, и проверка типов выполняется во время компиляции.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню