Hemen soruma geceyim
Simdiden tesekkur ederim


class Santigrat:
    def __init__(self, derece=0):
        self.derece = derece

    def fahrenayt(self):
        return (self.derece * 1.8) + 32

    
    def get_derece(self):
    # getter methodu ptint() seklinde veri istendiginde oto calisir.    
        return self._derece

    
    def set_derece(self, deger):
    # setter methodu = ile atama yapildiginda oto calisir.
        if deger < -273.15:
            raise ValueError("Derecenin -273.15'nin altinda olmasi mumkun degildir!")
        self._derece = deger

    derece = property(get_derece, set_derece)    


sicaklik = Santigrat(37)
# 37 dereceli Obje yarattik. 

print(sicaklik.derece) 
# Derece degerine get methodu ile ulastik.

print(sicaklik.fahrenayt())
# Fahrenayt methoduna ulastik.

sicaklik.derece = -300
# Yeni dereceyi set methodu yardimiyla ayarladik.
print(sicaklik.fahrenayt())
Bu sekilde sorunsuz calisiyor arkadaslar -300de hata veriyor!
https://www.programiz.com/python-programming/property buradan alintidir



Sorum su: #derece = property(get_derece, set_derece) devre disi birakip! get_derece, set_derece ustune @ property yazinca ise -273.15 sinirina takilmadan islem yapmaya devam ediyor! Ikiside property vermiyormu 2 methoda neden peki 2. islem boyle sonuclaniyor?

class Santigrat:
    def __init__(self, derece=0):
        self.derece = derece

    def fahrenayt(self):
        return (self.derece * 1.8) + 32

    @property
    def get_derece(self):
    # getter methodu ptint() seklinde veri istendiginde oto calisir.    
        return self._derece

    @property
    def set_derece(self, deger):
    # setter methodu = ile atama yapildiginda oto calisir.
        if deger < -273.15:
            raise ValueError("Derecenin -273.15'nin altinda olmasi mumkun degildir!")
        self._derece = deger

    #derece = property(get_derece, set_derece)    


sicaklik = Santigrat(37)
# 37 dereceli Obje yarattik. 

print(sicaklik.derece) 
# Derece degerine get methodu ile ulastik.

print(sicaklik.fahrenayt())
# Fahrenayt methoduna ulastik.

sicaklik.derece = -300
# Yeni dereceyi set methodu yardimiyla ayarladik.
print(sicaklik.fahrenayt())