Рубрики
Без рубрики

Python: Наследование, файловая система, обработка ошибок 🎯

Еще одна неделя Python прошла, и еще раз, есть много новых тем, о которых можно написать! Когда -либо … с меткой Python, OOP, WebDev, Learning.

Python от Zero to Hero 🐍 (серия 3 части)

Еще одна неделя Python прошла, и еще раз, есть много новых тем, о которых можно написать!

Каждый час, потраченное на обучение, заставляет меня понимать, насколько мощный и сложный этот язык.

Давайте погрузимся в 🏊‍♂ ️

Оглавление

  • Наследование
  • Обработка ошибок
  • Файловая система

Наследование

Наследование является ключевым аспектом объектно-ориентированной парадигмы программирования.

В последнем посте я представил классы с простым примером. Идея здесь состоит в том, чтобы создать класс «ребенка», который наследует от своего класса «родитель».

Класс ребенка имеет доступ к публичным атрибутам и методам своих родителей.

# Parent Class
class Vehicle:
    def __init__(self, color):
        self.color = color

    def info(self):
        print(f"Vehicle => color: {self.color}")


vehicle = Vehicle("red")
vehicle.info()  # Vehicle => color: red

# Child Classes
class Car(Vehicle):
    def __init__(self, color, brand):
        super().__init__(color)
        self.brand = brand
        self.wheels_count = 4

    def info(self):
        print(f"Car => color: {self.color} - brand: {self.brand} - wheels count: {self.wheels_count}")


class Bike(Vehicle):
    def __init__(self, color, brand):
        super().__init__(color)
        self.brand = brand
        self.wheels_count = 2

    def info(self):
        print(f"Bike => color: {self.color} - brand: {self.brand} - wheels count: {self.wheels_count}")


car = Car("blue", "Ferrari")
car.info()  # Car => color: blue - brand: Ferrari - wheels count: 4

bike = Bike("Yellow", "Yamaha")
bike.info()  # Bike => color: Yellow - brand: Yamaha - wheels count: 2

В приведенном выше примере мы объявляем классы «автомобиля» и «велосипед», которые вытекают из класса «автомобиль». Они оба имеют доступ к конструктору “автомобиля” ( init ) и метод Info ().

Здесь я решил переопределить конструктор, чтобы добавить еще одно поле и адаптировать поведение метода информации.

ПРИМЕЧАНИЕ: Ключевое слово «супер» просто обращается к родительскому классу.

Обработка ошибок

Мы привыкли к ошибкам и программам уничтожать как разработчики, но, если возможно, вы должны отправить в производство программу по производству сборов, защищенной от ошибок и без ошибок.

Отныне я предполагаю, что ваш код Python является правильным и не увеличивает ошибку синтаксиса.

Если вы запустите нецелостное исключение, программа, вероятно, сразу же разбит и сразу остановит выполнение.

Чтобы избежать потенциальных сбоев, рекомендуется обернуть код, подверженное ошибкам, в блок «try-eLse-else».

try:
    # Code to execute
    raise Exception("An error occured.")  # Some code raise an exception.
except:
    # If there is an exception
    print("Something failed ❌")
else:
    # If no exception was raised
    print("Everything is Ok ✅")
finally:
    # Code to execute
    print("We made it 👍")

Это не так много, но этого достаточно, чтобы начать работать над качеством вашего кода. Конечно, не было бы хорошей практики, чтобы обернуть всю кодовую базу в огромном блоке Try …

Файловая система

Python предлагает простой способ взаимодействия с локальными файлами и каталогами.

Лучшая практика для открытия и закрытия файлов использует ключевое слово. Это ключевое слово закрывает файл автоматически после завершения вложенного кодового блока.

# text.txt
Hello

# main.py
with open("text.txt", "r") as file:
    print(file.read()) # Display "Hello" in the console.

with open("text.txt", "a") as file:
    file.write(" World!") # file.txt's content is "Hello World!" now.

with open("text.txt", "w") as file:
    file.write("Cool!") # file.txt's content is "Cool!" now.

Первый аргумент – целевой файл, а второй – режим открытия.

Также можно взаимодействовать с каталогами, используя методы «ОС». В приведенном ниже примере показано, как перечислить все файлы в текущем каталоге.

# main.py
import os

with os.scandir("./") as entries:
    for entry in entries:
        print(entry.name)

# Displays in the console: 
# file.txt
# main.py
# .vscode

Другим интересным методом является «mkdir», который создает новый каталог.

# main.py
import os

try:
    os.mkdir("Test")
except:
    print("Directory already exists.")
else:
    print("Directory created ✅")

Здесь может быть умно обернуть ваш код в блок «Try-except», потому что программа будет сбой, если каталог с тем же именем уже существует.

Спасибо за чтение 😇

Python от Zero to Hero 🐍 (серия 3 части)

Оригинал: “https://dev.to/killianfrappartdev/python-inheritance-file-system-error-handling-456i”