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

ООП Как называются объекты ?

08.12.2019, 16:14. Показов 710. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Если я пишу:
Python
1
2
3
class Name():
    x = 0
obj = Name()
То у меня есть объект obj и я могу работать с ним как захочу
Но если я напишу:
Python
1
2
3
4
5
6
7
class myClass:
  x = 0
  def myMethod(self):
    self.x +=1
myArray = []
for x in range(1,10):
  myArray.append(myClass)
Как мне изменять свойства объектов?
Python
1
2
myArray[4].x = 5
myArray.myMethod
Или у всех этих объектов есть какие-то имена ?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.12.2019, 16:14
Ответы с готовыми решениями:

ООП, классы и объекты. О-нтация
У вас есть Родительский класс Car: class Car(object): brand = 'Mazda' max_speed = 100 color = 'black' def...

ООП и Шарп как инстанцировать объекты с разными интерфейсами
Изучаю ООП и С# и не понимаю как реализовать такую вещь: Есть абстрактный класс веб-страницы. И есть несколько классов конкретных...

Объекты, ООП
Есть два объекта.В полях второго объекта массив, состоящий из первых объектов.Вопрос как инициализировать второй объект. Для примера есть...

4
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
08.12.2019, 16:27
Цитата Сообщение от Deventeex Посмотреть сообщение
Как мне изменять свойства объектов?
Через обращение к имени свойства\атрибута, которые вы же сами и определили в классе.
Через обращение к метод(у\ам), которые вы же сами и определили в классе.

Цитата Сообщение от Deventeex Посмотреть сообщение
myArray[4].x = 5
Вы обращаетесь к конкретному экземпляру класса, который вы положили в список. Обращение через индекс списка.
Что вас не устраивает?

P.S. Переменная x, которую вы определили в теле класса (а не в теле метода __init__) будет общей для всех экземпляров класса.

Добавлено через 2 минуты
А ну да, вы же список закидываете не инициализированный экземпляр, а просто объект класса.
Что неверно. Хотя, все зависит от задачи.
Но в вашем случае вы скорей всего хотели этого:
Python
1
myArray.append(myClass())
0
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
08.12.2019, 16:31
Цитата Сообщение от Garry Galler Посмотреть сообщение
Переменная x, которую вы определили в теле класса (а не в теле метода __init__) будет общей для всех экземпляров класса и изменяя ее значение у одного экземпляра, вы на самом деле измените его для всех.
Что-то у меня не получается такой эффект

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class A:
    x = 0
 
a = []
 
for x in range(10):
    a.append(A())
 
for x in a:
    print(x.x)
 
print('--------------------------------')
 
a[3].x = 5
 
for x in a:
    print(x.x)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
08.12.2019, 17:35
tooru,
Тут я немного ошибся. Поэтому и исправил пост. В данном случае изменения общего атрибута x не будут разделяться всеми экземплярами.
Кроме случая, если x - изменяемый объект, например, список.
Тогда, изменив в одном экземпляре, изменим x во всех.

Добавлено через 43 минуты
P.S. C другой стороны даже в данном конкретном случае, когда x неизменяемый объект, если изменить его через вызов класса
Python
1
myClass.x = 10
то у всех уже созданных экземпляров x также станет 10, поскольку x разделяемый атрибут уровня класса.

Python
1
2
3
4
5
6
7
8
9
myArray = []
 
for x in range(1,10):
  myArray.append(myClass())
 
myClass.x = 10
 
for i in range(len(myArray)):
    print(myArray[i].x)
Code
1
2
3
4
5
6
7
8
9
10
10
10
10
10
10
10
10
10
1
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
08.12.2019, 18:07
Цитата Сообщение от Garry Galler Посмотреть сообщение
если изменить его через вызов класса
Получается такое раздвоение переменной, ее можно изменить у всех объектов обратившись через класс и только у одного объекта обратившись через поле объекта
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.12.2019, 18:07
Помогаю со студенческими работами здесь

Классы и объекты в ооп и с++
Что такое классы и объекты в ооп и с++?

Познаю ООП. Неполные объекты
Есть POCO-класс студентов: public class StudentDto { public int? Id { get; } public string Name { get; }...

Классы и объекты ООП и их методы
Необходимо разработать класс на тему "Меню в кафе", а также метод, например, который рассчитывает стоимость что-либо в кафе. Помогите плиз,...

Запись массива в свойства (ООП, объекты)
Поскольку обращение напрямую к полям класса, это плохой стиль, то я пробую обратиться через свойство. Но не получается... При...

ООП (классы и объекты) для реализации библиотеки
привет друзья есть библиотека настоящая с залами и шкафами и с полками в них наполненными книгами всё это объекты надо ли для...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Контроль корректности заполнения дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru