Найти - Пользователи
Полная версия: ООП новичок пример из Лутца
Начало » Python для новичков » ООП новичок пример из Лутца
1
dick80
Добрый день!
Простите глупого, пробую учить Пайтон по книге Лутца в 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

Есть какая-та ошибка, она где-то рядом, но не могу найти)))
py.user.next
Запиши код в файл script.py
Все отступы в коде сделай в виде четырёх пробелов.
Запускай этот файл script.py

Не используй IDLE. Используй python.exe .
Здесь писал, как пользоваться питоном в Windows.
dick80
py.user.next, спасибо большое!
Буду разбираться с использованием Пайтона в Windows))

Но не понимаю почему нельзя работать через IDLE. Через cmd также не получалось выполнять этот код.
py.user.next
dick80
Но не понимаю почему нельзя работать через IDLE.
В 2020-м году я написал, почему не надо использовать IDLE и тем более при обучении, когда ты вообще не знаешь ничего ещё и даже понять не можешь, что происходит там при выполнении кода. А до этого я ещё писал то же самое в другие годы и месяцы. И ты мне предлагаешь в 2023-м сейчас в июле писать это ещё раз по новой? Вот чтобы не писать это каждый год и каждый месяц, я просто это один раз написал в каком-то там году и когда кто-то это спрашивает снова, я просто ссылку даю туда. И я тебе эту ссылку уже дал.

dick80
Простите глупого, пробую учить Пайтон по книге Лутца в 4-ом издание.
Ты тут такой не один, тут каждый день такие приходят. И все одно и то же спрашивают и одно и то же говорят. Поэтому для тебя - ссылка, а не индивидуальный рассказ про IDLE и про всё остальное.
dick80
py.user.next
Запиши код в файл script.pyВсе отступы в коде сделай в виде четырёх пробелов.Запускай этот файл script.pyНе используй IDLE. Используй python.exe .Здесь писал, как пользоваться питоном в Windows.


В общем, создал файл script0.py.
В нём написал:
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

sue.lastName() # self – это sue

sue.giveRaise(.10) # Обновить сумму выплат для sue
sue.pay

Открывал его по Вашей инструкции через cmd. В итоге ничего не происходит:
C:\Users\Vi\Desktop>python script0.py

C:\Users\Vi\Desktop>C:\Users\Vi\Desktop

По отступам - делал по 4 пробела перед def и по 6 перед self и return.
Простите, глупого, я пробую учиться.
Про IDLE и ссылку всё понимаю, учусь.
dick80
Разобрался добавив 3 строки в выводом print.
Буду продолжать работать в cmd.
Ещё раз спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB