class sınıf():
bs=[123]
def __init__(self):
self.b = [12]
bs değişkeninin özel bir adı varmı
veya __ init__ de tanımlamadığımız değişkenlerin farkı ne
soruyu yanlış sorduysam özür dilerim
class sınıf():
bs=[123]
def __init__(self):
self.b = [12]
bs değişkeninin özel bir adı varmı
veya __ init__ de tanımlamadığımız değişkenlerin farkı ne
soruyu yanlış sorduysam özür dilerim
Sınıf içinde tanımlanan bs
değişkeni bir sınıf niteliği olur ve bütün örnekler o değişkeni kullanır. __init__
içinde tanımlanan self.b
değişkeni bir örnek niteliğidir ve her örnek için ayrıdır.
class sınıf():
bs=[123]
def __init__(self):
self.b = [12]
a = sınıf()
b = sınıf()
c = sınıf()
>>> id(a.bs) == id(b.bs) == id(c.bs)
True
>>> a.bs
[123]
>>> b.bs
[123]
>>>
>>> id(a.b) == id(b.b)
False
>>> a.b == b.b
True
>>> a.b
[12]
>>> b.b
[12]
>>> a.b = "başka bir şey"
>>> a.b
'başka bir şey'
>>> b.b
[12]
>>>
>>> b.bs
[123]
>>> a.bs
[123]
>>> a.bs.append(1)
>>> a.bs
[123, 1]
>>> b.bs
[123, 1]
>>> sınıf.bs
[123, 1]
Anladım çok saolun peki bir soru daha sorucam
staticmetod ,classmetod ve property decoratorlerini açiklayabilirmisinz
Bir soru sormadan önce belgelere göz atsanız iyi olur. Orada da anlamadığınız yer olursa o zaman sorarsınız.
https://python-istihza.yazbel.com/nesne_tabanli_programlama4.html#property-bezeyicisi
https://python-istihza.yazbel.com/nesne_tabanli_programlama2.html#staticmethod-bezeyicisi
https://python-istihza.yazbel.com/nesne_tabanli_programlama2.html#classmethod-bezeyicisi-ve-cls
Saolun ve özür dilerim bir dahakine sormadan önce arastırırım