Python’da nesne yönelimli programlama modeli ile bir programın nasıl yazılacağını açıklayabilir misiniz? Değişkenler, fonksiyonlar ve sınıflar gibi temel bileşenlere ve onların kullanımlarına değinerek bu modelin Python dilindeki uygulanışını örneklerle açıklayabilir misiniz? Nesne oluşturma, sınıf ve metod tanımlama, kalıtım, polimorfizm ve kapsülleme gibi nesne yönelimli programlamanın özelliklerini nasıl kullanırız ve bu özellikler Python’daki program akışına ve kodun okunabilirliğine nasıl bir katkı sağlar?