Sınıf yöntemleri

Python'da Nesne Yönelimli Programlamaya Giriş

George Boorman

Curriculum Manager, DataCamp

Yöntemler

class Employee:
    def __init__(self, name, salary):
        self.name = name
        self.salary = salary

    def give_raise(self, amount):
        self.salary += amount


# Benzersiz öznitelik değerleri emp_one = Employee("John", 40000)
emp_one.give_raise(5000) print(emp_one.salary)
45000









# Benzersiz öznitelik değerleri emp_two = Employee("Jane", 60000)
emp_two.give_raise(5000) print(emp_two.salary)
65000
Python'da Nesne Yönelimli Programlamaya Giriş

Sınıf yöntemleri

  • Sınıf yöntemleri tanımlanabilir
  • Nesne düzeyi veriyi kullanamadıkları için kapsam dar olmalıdır
class MyClass:
    # Bir sınıf yöntemi tanımlamak için dekoratör kullanın
    @classmethod

# cls bağımsız değişkeni sınıfı ifade eder def my_awesome_method(cls, args...): # İşlemler burada # Hiçbir örnek özniteliği kullanılamaz
# Nesne değil, sınıf üzerinden çağırın MyClass.my_awesome_method(args...)
  • self gibi, cls de bir gelenektir; herhangi bir kelime kullanılabilir
Python'da Nesne Yönelimli Programlamaya Giriş

Alternatif kurucular

class Employee:
  def __init__(self, name, salary):
      self.name = name
      self.salary = salary

@classmethod def from_file(cls, filename): with open(filename, "r") as f: # İlk satırı okuyun name = f.readline().strip() # İkinci satırı tamsayı olarak okuyun salary = int(f.readline().strip())
return cls(name, salary)
  • Alternatif kurucular sağlar
  • Yalnızca bir __init__() olabilir

 

  • Nesne oluşturmak için sınıf yöntemlerini kullanın
  • Bir nesne döndürmek için return kullanın
  • cls(...), __init__(...) çağırır
Python'da Nesne Yönelimli Programlamaya Giriş

Alternatif kurucular

class Employee:
  def __init__(self, name, salary):
      self.name = name
      self.salary = salary
  @classmethod
  def from_file(cls, filename):
      with open(filename, "r") as f:
          name = f.readline().strip()
          salary = int(f.readline().strip())
      return cls(name, salary)  

Employee.txt

John Smith adı ve 40000 maaşını içeren metin dosyası

# Employee() çağırmadan bir çalışan oluşturun
emp = Employee.from_file("employee_data.txt")
print(emp.name)
John Smith
Python'da Nesne Yönelimli Programlamaya Giriş

Sınıf yöntemleri ne zaman kullanılır

  • Alternatif kurucular

  • Örnek düzeyi öznitelikler gerektirmeyen yöntemler

  • Bir sınıfın tek bir örneğiyle sınırlandırma

    • Veritabanı bağlantıları
    • Yapılandırma ayarları
Python'da Nesne Yönelimli Programlamaya Giriş

Hadi pratik yapalım!

Python'da Nesne Yönelimli Programlamaya Giriş

Preparing Video For Download...