Programlama konusunda çok yeni ve python öğrenmeye başladım. Çok aptalca bir soru olabilir, bu yüzden lütfen cehaletimi affedin. aşağıdaki kod parçasını inceleyin:Python sınıf özniteliklerini anlama
ben kapsamında akıllıca onlar kıyasla tüm yerlerde eşit erişilebilir olarak (onları tanımladıktan yere wrt) foo ve çubuğu kullanarak arasındaki fark ne olduğunu anlamak istiyorumclass Test1:
bar = 10
def display(self,foo):
self.foo=foo
print "foo : ",self.foo #80
def display1(self):
print "bar: ", self.bar #10
print "again foo: ", self.foo #80
if __name__ == '__main__':
test1 = Test1()
test1.display(80)
test1.display1()
print test1.bar #10
print test1.foo #80
Birbiri ve tek fark, birisinin fonksiyonun içinde ve diğeri Sınıf'ın içinde olması ama ikisi de hala "örnek" değişkenidir. Peki bu iyi bir uygulama mı? Biraz aşağıda ekran işlevini değiştirirseniz
Ayrıca:
def display(self,foo):
self.foo=foo
foo = foo
print "self.foo : ",self.foo
print "foo : ",foo
birisi piton ne fark/öneme bu self
kelime ikisi foo
arasına getiriyor gibi bu, nasıl gördüğünü lütfen açıklayabilir.
Hayır, 'bar' değil * bir örnek değişkeni olan *. İkisi çok farklıdır, bu yüzden "iyi uygulama" ile ilgili değildir. Durumunuza uygun olan şey, çünkü farklı amaçlara hizmet ediyorlar. – phant0m
Ayrıca 'self.bar' işlevi, 'bar' adı ilk önce örnek adında ve sonra sınıfta aranır. self.bar' çalışmaları * daima 'bar' bir örnek değişkendir anlamına gelmez' gerçeği. – ersran9