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())