Python Günlükleri 5 - Inheritance, Modüller, Packages, PEP8, Dosya/Dizin ve Pypi/Pip

Merhaba,

Serinin son yazısını paylaşıyorum. Artık projelerle devam edeceğim.
Keyifli okumalar :)


1. Inheritance (Kalıtım)
  • Kalıtım, kodun tekrar kullanılabilmesini sağlayan bir mekanizmadır.
class Mammal:
    def walk(self):
        print("walk")


class Dog(Mammal):
    def bark(self):
        print("bark")


class Cat(Mammal):
    pass  # empty class, Python doesnt like empty classes

dog1 = Dog()
dog1.walk()



2. Modüller
  • Modüller içinde bazı kodların bulunduğu bir dosyadır.
  • Modülleri, yazdığımız kodları bölümler halinde saklamak için kullanırız. Kodu daha iyi organize ederiz.
  • Süpermarketteki meyve, sebze, temizlik gibi bölümler modüllere benzer. Programlamada da bu konsepti kullanırız.

from Functions import square  # "ctrl" + "space" ile metotlara bakılır
result = square(3)
print(result)



3. Packages (Paketler)
  • Paket, birden fazla modülü içeren bir konteyner olarak adlandırılır. Dosya sisteminde paket bir dizin veya klasördür.
  • Paket yapısı da modüller gibi kodu organize etmek için kullanılır.
  • Yukarıdaki örnekte belirtildiği gibi paket yapısı modülleri kapsar.
  • Büyük projelerde daha fazla önem kazanır.
  • Projeye sağ tıklayarak New --> Directory ile package oluşturabiliriz. Bu klasöre "__init__.py" dosyası eklendiğinde artık bir package olur.
  • Pycharm'da otomatik olarak package açılabilir. Projeye sağ tık New --> Python package ile bu işlemi yapabilirz. Manuel olarak __init__.py eklememize gerek kalmaz.

4. Random Değerler Oluşturmak

  • Python'da önceden oluşturulmuş (built-in) birçok modül bulunmaktadır. Bunları tekrar kodlamaya gerek yoktur.
  • https://docs.python.org/3/py-modindex.html sitesinden tüm bu standart modüllere ulaşabiliriz.
  • Python bu modüllerin nerede olduğunu bilir ve özellikle yerini belirtmemize gerek kalmaz(import).
  • Bu modüller External Libraries --> Python 3.7 --> Python37 --> Lib altında yer alır.
  • Bu başlıkta ise örnek olarak "random" modülünü kullanacağız.
  • 0-1 arasında random değerler oluşturmak için aşağıdaki kodları kullanabiliriz:

import random

i = 0while i <= 10:
    print(random.random())
    i += 1

  • random.randint(10,20) ile 10 ve 20 arasında random değer üretebiliriz.
  • random.choice(list) ile verilen liste içerisinden bir değer random olarak seçilebilir.

import random

members = ["John", "Bob", "Mary", "Mosh"]
leader = random.choice(members)
print(leader)

  • PEP8: Python Enhancement Proposals açılımıdır. Burada belirtilen bazı kurallarla kodu en iyi şekilde nasıl yazabileceğimiz belirtilmiştir. Yazılan kodun okunabilirliğini artması için Python'un yazarı Guido van Rossum ve Python geliştiricisi Barry Warsaw tarafından yazılan bir rehberdir. Pycharm bu rehberi otomatik olarak kullanır ve yanlış bir uygulamada uyarı verir.


5. Files ve Directories (Dosyalar ve Dizinler)

  • Bu başlıkta dizinlerle nasıl çalışabileceğimizi inceleyeceğiz.
  • Python standart kütüphanesinde yer alan (https://docs.python.org/3/py-modindex.html) pathlib modülü ile dizin ve dosyalarla çalışabiliriz.
  • İki tür path (erişim yolu) oluşturabiliriz:
    • Absolute path: C:\Program files\Microsoft
    • Relative path: Pyhton'da kod yazılan dizinden (directory) başlayarak bir path oluşturulur.
from pathlib import Path

path = Path("emails")
if path.exists():
    path.rmdir()  # remove directoryelse:
    path.mkdir()  # make directory
path1 = Path()  # current directory
# glob metoduyla  belirtilen directory de tüm dosyalar listelenebilir# glob bir generator fonksiyondur. Iterator gibi davranır ve döngüde kullanılabilirfor file in path1.glob('*.py'):
    print(file)

6. Pypi ve Pip

  • Python'da standart olarak kullanabileceğimiz (python 3 module index) birçok modül olsa da bu yeterli değildir.
  • Python Package Index, başka yazılımcılar tarafından belli görevler için oluşturulmuş birçok package a ulaşmamızı sağlar.
  • https://pypi.org/ ile bu package lere ulaşabilir. SMS göndermek için burayı incelersek:





















  • Örnek olarak buradaki excel ile çalışmamızı sağlayan openpyxl package ını indirmek için aşağıdaki adımları takip edebiliriz: 

  • Yüklenen package lara Pycharm'da "External Libraries --> Python 3.7 --> site-packages" dizininden ulaşabiliriz.