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”