Форум сайта python.su
Добрый день!
Простите глупого, пробую учить Пайтон по книге Лутца в 4-ом издание.
Приведён пример ООП, не могу его воспроизвести в IDLE.
Сам пример в книге выглядит так:
>>> class Worker:
def __init__(self, name, pay): # Инициализация при создании
self.name = name # self – это сам объект
self.pay = pay
def lastName(self):
return self.name.split() # Разбить строку по символам пробела
def giveRaise(self, percent):
self.pay *= (1.0 + percent) # Обновить сумму выплат
>>> bob = Worker(‘Bob Smith’, 50000) # Создаются два экземпляра и для каждого
>>> sue = Worker(‘Sue Jones’, 60000) # определяется имя и сумма выплат
>>> bob.lastName() # Вызов метода: self – это bob
‘Smith’
>>> sue.lastName() # self – это sue
‘Jones’
>>> sue.giveRaise(.10) # Обновить сумму выплат для sue
>>> sue.pay
66000.0
И вот, что получается (У МЕНЯ) в среде Idle:
Python 3.11.3 (tags/v3.11.3:f3909b8, Apr 4 2023, 23:49:59) on win32
Type “help”, “copyright”, “credits” or “license()” for more information.
class Worker:
def __init__(self, name, pay):
self.name = name
self.pay = pay
def lastName(self):
return self.name.split()
def giveRaise(self, percent):
self.pay *= (1.0 + percent)
bob = Worker('Bob Smith', 50000)
sue = Worker('Sue Jones', 60000)
bob.lastName()
Traceback (most recent call last):
File “<pyshell#11>”, line 1, in <module>
bob.lastName()
AttributeError: ‘Worker’ object has no attribute ‘lastName’
sue.lastName()
Traceback (most recent call last):
File “<pyshell#12>”, line 1, in <module>
sue.lastName()
AttributeError: ‘Worker’ object has no attribute ‘lastName’
sue.giveRaise(.10)
Traceback (most recent call last):
File “<pyshell#13>”, line 1, in <module>
sue.giveRaise(.10)
AttributeError: ‘Worker’ object has no attribute ‘giveRaise’
sue.pay
60000
Есть какая-та ошибка, она где-то рядом, но не могу найти)))
Отредактировано dick80 (Июль 12, 2023 09:52:54)
Офлайн
Запиши код в файл script.py
Все отступы в коде сделай в виде четырёх пробелов.
Запускай этот файл script.py
Не используй IDLE. Используй python.exe .
Здесь писал, как пользоваться питоном в Windows.
Офлайн
py.user.next, спасибо большое!
Буду разбираться с использованием Пайтона в Windows))
Но не понимаю почему нельзя работать через IDLE. Через cmd также не получалось выполнять этот код.
Офлайн
dick80В 2020-м году я написал, почему не надо использовать IDLE и тем более при обучении, когда ты вообще не знаешь ничего ещё и даже понять не можешь, что происходит там при выполнении кода. А до этого я ещё писал то же самое в другие годы и месяцы. И ты мне предлагаешь в 2023-м сейчас в июле писать это ещё раз по новой? Вот чтобы не писать это каждый год и каждый месяц, я просто это один раз написал в каком-то там году и когда кто-то это спрашивает снова, я просто ссылку даю туда. И я тебе эту ссылку уже дал.
Но не понимаю почему нельзя работать через IDLE.
dick80Ты тут такой не один, тут каждый день такие приходят. И все одно и то же спрашивают и одно и то же говорят. Поэтому для тебя - ссылка, а не индивидуальный рассказ про IDLE и про всё остальное.
Простите глупого, пробую учить Пайтон по книге Лутца в 4-ом издание.
Отредактировано py.user.next (Июль 12, 2023 10:26:28)
Офлайн
py.user.next
Запиши код в файл script.pyВсе отступы в коде сделай в виде четырёх пробелов.Запускай этот файл script.pyНе используй IDLE. Используй python.exe .Здесь писал, как пользоваться питоном в Windows.
Отредактировано dick80 (Июль 12, 2023 10:30:22)
Офлайн
Разобрался добавив 3 строки в выводом print.
Буду продолжать работать в cmd.
Ещё раз спасибо!
Офлайн