Улучшение класса Stock
В Python классы представляют собой мощный способ организации данных и поведения. Они позволяют нам группировать связанные данные и функции вместе. В этом разделе мы усовершенствуем наш класс Stock
, добавив метод, который выводит отформатированную информацию о акциях. Это отличный пример того, как мы можем инкапсулировать как данные, так и поведение в наших классах. Инкапсуляция означает объединение данных с методами, которые работают с этими данными, что помогает держать наш код организованным и легким в управлении.
-
Сначала вам нужно открыть файл stock.py
в редакторе WebIDE. Файл stock.py
- это место, где мы работали над нашим классом Stock
. Открытие его в редакторе позволяет нам внести изменения в определение класса.
-
Теперь мы изменим класс Stock
, добавив новый метод display()
. Этот метод будет отвечать за вывод информации о акциях в удобно отформатированном виде. Вот как вы можете сделать это:
class Stock:
def __init__(self, name, shares, price):
self.name = name
self.shares = shares
self.price = price
def cost(self):
return self.shares * self.price
def display(self):
print(f"Stock: {self.name}, Shares: {self.shares}, Price: ${self.price:.2f}, Total Cost: ${self.cost():.2f}")
В методе __init__
мы инициализируем название акции, количество акций и цену. Метод cost
вычисляет общую стоимость акций, умножая количество акций на цену. Новый метод display
использует f-строку для форматирования и вывода информации о акциях, включая название, количество акций, цену и общую стоимость.
-
После внесения этих изменений вам нужно сохранить файл. Вы можете сделать это, нажав Ctrl+S
на клавиатуре или кликнув на значок сохранения в редакторе. Сохранение файла гарантирует, что ваши изменения будут сохранены и могут быть использованы позже.
-
Далее мы запустим новую интерактивную сессию Python. Интерактивная сессия позволяет нам сразу же протестировать наш код. Чтобы запустить сессию, выполните следующую команду в терминале:
python3 -i stock.py
Опция -i
сообщает Python запустить интерактивную сессию после выполнения файла stock.py
. Таким образом, мы можем сразу использовать класс Stock
и его методы.
- Теперь давайте создадим объект акции и используем новый метод
display()
. Мы создадим объект, представляющий акции Apple, а затем вызовем метод display
, чтобы увидеть отформатированную информацию. Вот код:
apple = Stock('AAPL', 200, 154.50)
apple.display()
Когда вы запустите этот код в интерактивной сессии, вы увидите следующий вывод:
Stock: AAPL, Shares: 200, Price: $154.50, Total Cost: $30900.00
Этот вывод показывает, что метод display
работает правильно и форматирует информацию о акциях, как ожидалось.
- Наконец, давайте создадим список акций и выведем их все. Это покажет, как мы можем использовать метод
display
с несколькими объектами акций. Вот код:
stocks = [
Stock('GOOG', 100, 490.10),
Stock('IBM', 50, 91.50),
Stock('AAPL', 200, 154.50)
]
for stock in stocks:
stock.display()
Когда вы запустите этот код, вы получите следующий вывод:
Stock: GOOG, Shares: 100, Price: $490.10, Total Cost: $49010.00
Stock: IBM, Shares: 50, Price: $91.50, Total Cost: $4575.00
Stock: AAPL, Shares: 200, Price: $154.50, Total Cost: $30900.00
Добавив метод display()
в наш класс, мы инкапсулировали логику форматирования внутри самого класса. Это делает наш код более организованным и легким в поддержке. Если нам нужно изменить способ отображения информации о акциях, нам нужно изменить только метод display
в одном месте, а не вносить изменения по всему коду.