С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85

Ошибка при написании класса

14.04.2021, 16:21. Показов 3841. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Первый опыт написания класса и подкласса.

Делал почти в ноль по копирке с сайта.

Написал это:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Animal:
    def __init__(self, age, weight, color):
        self.age = age
        self.weight = weight
        self.color = color
 
    def data(self):
        print('Возраст: {}. Вес: {}'. 'Цвет': {}'.format(self.age, self.weight,
        self.color))
 
class Dog(Animal):
    def __init__(self, yip):
        self.yip = yip
 
    def data(self):
        print('Лай': {}.format(self.yip))
 
a.Animal(10, 5, 'Белый')
print(a.data())
 
b.Dog('Гав')
print(b.data())
В интерпретаторе получаю ошибку. Приложил ниже.
Где же она, родименькая?)
Миниатюры
Ошибка при написании класса  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
14.04.2021, 16:21
Ответы с готовыми решениями:

Ошибка подключения при написании неправильных данных
Помогите пожалуйста. Как вывести в программе ошибку подключения при введении неправильных данных? Я пробовал else и except, я начинающий,...

Ошибка при реализации класса
Перевел код с С++, прошу исправить ошибку ammount = 0 class Point(): def __init__(self,...

Выскакивает ошибка при написании телеграм-бота
import telebot import pyglet bot = telebot.TeleBot('5452334558:AAHMc4oUdjUZBE0M_z60BdtVCvN7CRqns28') ...

22
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
14.04.2021, 16:28  [ТС]
Скрин не тот
Миниатюры
Ошибка при написании класса  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
14.04.2021, 16:30
Лучший ответ Сообщение было отмечено MagentaIceberg как решение

Решение

Цитата Сообщение от MagentaIceberg Посмотреть сообщение
print('Возраст: {}. Вес: {}'. 'Цвет': {}'.format(self.age, self.weight,
       self.color))
зачем столько апострофов, так переписал или так скопировал? должно быть в стиле
'Возраст: {}. Вес: {}. Цвет: {}'.format(self.age, self.weight, self.color)

ну и такой формат уже не используют, только ф-строки
2
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
14.04.2021, 16:31
Лучший ответ Сообщение было отмечено MagentaIceberg как решение

Решение

Не по теме:

Цитата Сообщение от MagentaIceberg Посмотреть сообщение
'Возраст: {}. Вес: {}'. 'Цвет': {}'




P. S. Забудь про метод str.format - используй f-strings!
1
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
14.04.2021, 16:31
Лучший ответ Сообщение было отмечено MagentaIceberg как решение

Решение

Цитата Сообщение от MagentaIceberg Посмотреть сообщение
a.Animal(10, 5, 'Белый')
а что тут за "a", откуда она?
1
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
14.04.2021, 16:35  [ТС]
Welemir1, Arsegg, о, спасибо, ребят! Чаз подразберёмся..

Добавлено через 2 минуты
Цитата Сообщение от Welemir1 Посмотреть сообщение
а что тут за "a", откуда она?
я профакал момент инициализации за счёт передачи ссылки переменной. Думал, что инициализация идет за счёт передачи аргументов класса переменной. Крч, равно не поставил))
0
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
14.04.2021, 17:00  [ТС]
Welemir1, у меня теперь появился насущный вопрос. Попробовал ф-строку использовать. Написал так:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Animal:
    def __init__(self, age, weight, color):
        self.age = age
        self.weight = weight
        self.color = color
 
    def data(self):
        print(f'{age, weight, color}')
 
class Dog(Animal):
    def __init__(self, yip):
        self.yip = yip
 
    def data(self):
        print(f'{yip}')
 
a = Animal(10, 5, 'Белый')
print(a.data())
 
b = Dog(5, 7, 'Черный', 'Гав')
print(b.data())
И теперь появилась новвая ошибка, ниже привязал. Что не так делаю?
Миниатюры
Ошибка при написании класса  
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
14.04.2021, 17:09
Цитата Сообщение от MagentaIceberg Посмотреть сообщение
И теперь появилась новвая ошибка, ниже привязал. Что не так делаю?
главное - не прочитал как это работает и не посмотрел видео.

Python
1
2
3
4
5
6
7
8
9
10
11
>>> class Animal:
...     def __init__(self, age, weight, color):
...         self.age = age
...         self.weight = weight
...         self.color = color
...     def data(self):
...         print(f'{self.age}, {self.weight}, {self.color}')
... 
>>> an = Animal(10,100,'yellow')
>>> an.data()
10, 100, yellow
Добавлено через 38 секунд
Цитата Сообщение от MagentaIceberg Посмотреть сообщение
def data(self):
        print(f'{yip}')
тут та же проблема
1
3582 / 2182 / 571
Регистрация: 02.09.2015
Сообщений: 5,510
14.04.2021, 18:33
Цитата Сообщение от MagentaIceberg Посмотреть сообщение
Что не так делаю?
Почитай по диагонали Лутца. По твоему коду видны явные проблемы в понимании ООП.
1
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
15.04.2021, 15:45  [ТС]
Arsegg, да, как раз сейчас начал читать. Спасибо)

Добавлено через 1 минуту
Цитата Сообщение от Welemir1 Посмотреть сообщение
главное - не прочитал как это работает и не посмотрел видео.
посмотрел, на самом деле) там просто не было примеров с несколькими атрибутами.
Спасибо за разбор!
0
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
15.04.2021, 16:02  [ТС]
Welemir1, чёрт-возьми, попробовал исправить код:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Animal:
    def __init__(self, age, weight, color):
        self.age = age
        self.weight = weight
        self.color = color
 
    def data(self):
        print(f'{self.age}, {self.weight}, {self.color}')
 
class Dog(Animal):
    def __init__(self, yip):
        self.yip = yip
 
    def data(self):
        print(f'{self.yip}')
 
a = Animal(10, 5, 'Белый')
print(a.data())
 
b = Dog(5, 7, 'Черный', 'Гав')
print(b.data())
интерпретатор курса выдаёт ошибку в той же строке. Ниже привязал.
Получается толи лыжи не едут, толи я что-то проглядел..
Изображения
 
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
15.04.2021, 16:25
Цитата Сообщение от MagentaIceberg Посмотреть сообщение
интерпретатор курса
это что? уточни версию питона! мы тебе даем знания по самому свежему и понятия не имеем о интерпретаторах курса
1
 Аватар для GorodetskiyKP
139 / 97 / 48
Регистрация: 22.10.2012
Сообщений: 234
15.04.2021, 16:35
Не везде еще стоит python > 3.6. Поэтому через .format(). В __init__ класса-наследника нужно прописать все аргументы, их обработку отдать __init__ класса-родителя через super()

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Animal:
    def __init__(self, age, weight, color):
        self.age = age
        self.weight = weight
        self.color = color
 
    def data(self):
        return '{}, {}, {}'.format(self.age, self.weight, self.color)
 
 
class Dog(Animal):
    def __init__(self, age, weight, color, yip):
        self.yip = yip
        super().__init__(age, weight, color)
 
    def data(self):
        return '{}'.format(self.yip)
 
 
a = Animal(10, 5, 'Белый')
print(a.data())
 
b = Dog(5, 7, 'Черный', 'Гав')
print(b.data())
1
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
16.04.2021, 13:03  [ТС]
Welemir1, последняя. 3.9.4
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
16.04.2021, 13:28
MagentaIceberg, вопросы к нему, на нормальном интерпретаторе твой код работает

Добавлено через 51 секунду
Цитата Сообщение от MagentaIceberg Посмотреть сообщение
b = Dog(5, 7, 'Черный', 'Гав')
погоди ка, а это чего? у тебя для собаки совсем другой инит
0
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
16.04.2021, 13:41  [ТС]
Welemir1, если правильно понял, версия пайтона на курсе может быть устаревшей?..
Опробовал у себя - есть ошибка. Но тут, так понимаю, просто не правильно дополняю метод инит. Я хочу использовать инит родительского класса и дописать один атрибут. А получается, что я его заново создаю.
Код такой же:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class Animal:
    def __init__(self, age, weight, color):
        self.age = age
        self.weight = weight
        self.color = color
 
    def data(self):
        print(f'{self.age}, {self.weight}, {self.color}')
 
class Dog(Animal):
    def __init__(self, yip): #здесь я думал, что дополняю родительский инит
        self.yip = yip
 
    def data(self):
        print(f'{self.yip}')
 
a = Animal(10, 5, 'Белый')
print(a.data())
 
b = Dog(5, 7, 'Черный', 'Гав')
print(b.data())
Приложил скрин.
Вопрос - как тогда правильно дополнить метод подкласса, обращаясь к родительскому и не переопределяя его, а дополняя?
Миниатюры
Ошибка при написании класса  
0
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
16.04.2021, 13:43  [ТС]
GorodetskiyKP, блин, версия на курсе также и о методе super не слышала)) Ошибка: https://prnt.sc/11if7zv
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
16.04.2021, 13:47
Цитата Сообщение от MagentaIceberg Посмотреть сообщение
#здесь я думал, что дополняю родительский инит
как? ты его явно или через super не вызвал, никаких атрибутов нет, как ты ему передшь возраст например если ты его сам не получил?
Может чего то по ООП почитать? ну курс явно слабоват) тебе выше привели верный пример для Собаки
0
Изучаю Python
 Аватар для MagentaIceberg
1 / 1 / 0
Регистрация: 12.03.2021
Сообщений: 85
16.04.2021, 13:50  [ТС]
Welemir1, да, там на курсе инфы особо нет. Только задачи. Поэтому отовсюду выщипываю. Super - не принял интерпретатор на курсе
По чтиву читаю Лутца "Изучаем Пайтон" пока не дошёл до классов.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
16.04.2021, 14:03
MagentaIceberg, но пример то от Городецкого посмотрел?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.04.2021, 14:03
Помогаю со студенческими работами здесь

Ошибка can't open file 'c:\users\julia\bot.py': [errno 2] no such file or directory при написании бота в ТГ
Друзья, всем привет! Огромная просьба помочь. Я написала код на Питоне. И после того, как в командной строке я написала python...

Ошибка при импорте класса
Не могу понять, в чём проблема. В проекте два файла (модуля): main.py: import pygame import random import os from sprites...

Ошибка при описании класса
18 и 20 строки: Unresolved attribute reference 'owner' for class 'turn' class turn: ## ход def __init__(self, owner,...

Ошибка - требуется имя члена при при написании класса
Выскочила непонятная ошибка - требуется имя члена на 57 строчке. Подчеркивается почему то круглая скобка. Все перекопал, но так и не нашел...

Ошибка при запуске программы при написании дружественного класса или дружественную функцию, Площадь
Добрый день, уважаемые программисты! Прошу исправить проект или подсказать в чем ошибка. Ниже код: #include <iostream> ...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru