С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
1 / 1 / 2
Регистрация: 12.07.2013
Сообщений: 146

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

29.07.2013, 14:33. Показов 2065. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru