1 / 1 / 2
Регистрация: 12.07.2013
Сообщений: 146

Что означает кортеж в классе?

29.07.2013, 14:33. Показов 2092. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если позволите, буду консультироваться по некоторым моментам.
Питон исповедую с марта месяца(v3.3), конечно подчитываю и книги и ман,
в принципе семантика языка не сложная, да что уж - я просто фанат этого языка!
но иногда лень лезть в книгу.
Итак, начну свои вопросы:
переведите мне вот такую строчку
Python
1
class Protects: (Neither, Left, Right, Both) = range(4)
это класс-кортеж? тогда зачем range(4)?

 Комментарий модератора 
правила
4.4. На каждый вопрос создавайте по одной теме - это помогает избежать путаницы в ответах и облегчает поиск.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.07.2013, 14:33
Ответы с готовыми решениями:

Что означает оператор this в классе
Ещё один вопросик. встретил такой код: class myarr { int ar; public myarr(int size) { ... } public int this {

Имеется кортеж из нескольких производных элементов , необходимо этот кортеж отсортировать
имеется кортеж из нескольких производных элементов , необходимо этот кортеж отсортировать,если хотя бы один элемент не является числом ,...

Событие A означает, что извлечены 3 зеленых, а событие В - извлечены 3 красных леденца. Что означает сумма А или B?
Помогите с задачей! В упаковке 6 леденцов, из них 3 зеленых и 3 красных. Наудачу извлекают 3 леденца. Пусть событие A означает, что...

6
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
29.07.2013, 15:06
Начнём с того, что оформление кода не верное, нужно вот так:
Python
1
2
class Protects: 
    (Neither, Left, Right, Both) = range(4)
В этой записи создаётся класс с именем Protects. Внутри класса именам Neither, Left, Right, Both присваиваются значения Neither будет равен 0, Left = 1 и т д

(Neither, Left, Right, Both) = range(4) это пример множественного присваивания (вроде так называется). То есть каждому значению из кортежа будет присвоено значение записанное слева. Кстати можно значения Neither, Left, Right, Both можно не оборачивать в кортеж.

Вот аналогичная запись, думаю она немного пояснит, что происходит:
Python
1
Neither, Left, Right, Both = 0, 1, 2, 3
Введи этот код в терминале и посмотри какие значения были присвоены переменным Neither, Left, Right, Both

Добавлено через 8 минут
Функция range возвращает список с числами из заданного диапазона. На пример если ты напишешь в консоли python range(4), то тебе вернутся список от 0 до 3.
Python
1
2
>>> range(4)
[0, 1, 2, 3]
0
1 / 1 / 2
Регистрация: 12.07.2013
Сообщений: 146
29.07.2013, 16:29  [ТС]
про множественное присваивание я знал. про оформление тоже. но писал не я(иначе бы вопроса не было).
Что касается самой этой "конструкции" то она используется аналогично перечислениям в C#,
Меня "смущает" что это класс. Опять же по аналогии с С#, такой класс называется абстрактный, т.е. не имеет базового класса...это я так мыслю...т.е. получается отсутствие скобок после имени класса говорит о том что он абстрактный? А наличие пустых скобок?
0
100 / 85 / 5
Регистрация: 06.05.2013
Сообщений: 242
29.07.2013, 17:32
Ааа ну так и надо было спрашивать, что конкретно тебя смущает.
В python есть 2 вида классов: классические и классы нового стиля.
То, что ты прислал там используется класс класичего стиля. Скобки после имени класса ставились бы только если ты хотел бы унаследовать другой класс и в скобках ты бы запис его имя. Если ни чего не наследуешь скобок нет.

В классах нового стиля если тебе не нужно наследовать какой-то конкретный класс, то ты пишешь в скобках object.
Python
1
class example(object):
Если в если тебе нужно унаследовать другой класс, на пример list, то упоминимать object не нужно.

С версии python 3, все классы считаются по умолчанию классами нового стиля.
0
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
29.07.2013, 22:54
Цитата Сообщение от sabrus Посмотреть сообщение
Питон исповедую с марта месяца(v3.3)
Цитата Сообщение от dhxdzjbr Посмотреть сообщение
Функция range возвращает список с числами из заданного диапазона.
в третьем питоне возвращается range-объект

Цитата Сообщение от sabrus Посмотреть сообщение
такой класс называется абстрактный, т.е. не имеет базового класса
абстрактный класс - это вообще другое понятие
это класс, который нужен не для создания экземпляров, а для создания других классов
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
03.08.2013, 18:01
Цитата Сообщение от dhxdzjbr Посмотреть сообщение
Начнём с того, что оформление кода не верное, нужно вот так:
Все там верно.

Цитата Сообщение от sabrus Посмотреть сообщение
это класс-кортеж? тогда зачем range(4)?
Это что-то типа enum'а.

Так как в Python нет перечислений как объекта языка, то они эмулируются через классы, в которых определены переменными класса (class variables) как элементы перечисления (Neither, Left, Right, Both у тебя). PEP 435 предлагает стандартный костыль, который должен появиться в 3.4. Внешне его использование почти не отличается от старого метода, кроме того, что нужно наследоваться от класса Enum. Однако вместе с этим появляются дополнительные возможности — итерация по перечислению, проверка принадлежности элемента перечислению, возможность динамического доступа к элементам перечисления и другие.
0
1 / 1 / 2
Регистрация: 12.07.2013
Сообщений: 146
06.08.2013, 14:32  [ТС]
уже есть.
http://docs.python.org/3.4/lib... odule-enum
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.08.2013, 14:32
Помогаю со студенческими работами здесь

Создать кортеж и распаковать кортеж в несколько переменных
Создать кортеж и распаковать кортеж в несколько переменных

Как обьявить переменную в одном классе и что бы ее было видно в дочернем классе
У меня есть основной класс с названием Root один из его членов наследует дочерний класс SubRoot. Скажите как объявить, что бы один из...

Что означает появление письменности (языка), и что означает реформа письменности (языка)?
Не секрет, что духовность всегда сокрыта в письменности (языке), так высшая стадия развития духовности социума (общества) это всегда...

Как вывести кортеж целиком и как распаковать кортеж в переменные?
Как вывести кортеж целиком и как распаковать кортеж в переменные?

Заполните один кортеж десятью случайными целыми числами от 0 до 5 включительно. Также заполните второй кортеж числами от
Заполните один кортеж десятью случайными целыми числами от 0 до 5 включительно. Также заполните второй кортеж числами от 45 до 0. Для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru