Evet, yayınlanan orijinal örnek için özellik, yalnızca 'x' örnek değişkenine sahip olmakla tamamen aynı şekilde çalışır.
Python özellikleri hakkında en iyi şey budur. Dışarıdan, örnek değişkenler gibi çalışırlar! Bu, sınıf dışından örnek değişkenleri kullanmanıza olanak tanır.
Bu, ilk örneğinizin aslında bir örnek değişkeni kullanabileceği anlamına gelir. İşler değiştiyse ve sonra uygulamanızı değiştirmeye karar verirseniz ve bir özellik yararlıysa, özelliğin arabirimi sınıf dışındaki kodla aynı kalır. Örnek değişkeninden özelliğe yapılan değişikliğin sınıf dışındaki kod üzerinde bir etkisi yoktur.
Diğer birçok dil ve programlama kursu, bir programcının asla örnek değişkenleri göstermemesini ve bunun yerine sınıfın dışından erişilecek herhangi bir değere (hatta soruda belirtildiği gibi basit duruma) 'getters' ve 'setters' kullanmamasını söyleyecektir.
Sınıf dışında birçok dil (ör. Java) kullanımı ile kodlama
object.get_i()
#and
object.set_i(value)
#in place of (with python)
object.i
#and
object.i = value
Sınıfı uygularken tam olarak ilk örneğiniz gibi birçok 'alıcı' ve 'ayarlayıcı' vardır: basit bir örnek değişkeni çoğaltın. Sınıf alıcıları değişirse, sınıf dışındaki tüm kodların değişmesi gerekeceğinden bu alıcılar ve ayarlayıcılar gereklidir. Ancak python özellikleri sınıf dışındaki kodların örnek değişkenlerle aynı olmasına izin verir. Bu nedenle, bir özellik eklerseniz veya basit bir örnek değişkeniniz varsa sınıf dışındaki kodun değiştirilmesi gerekmez. Yani en Object Oriented dillerden farklı olarak, sizin basit örneğin siz yapabilirsiniz Gelecekte bir mülke değiştirirseniz, kod kullanarak bilerek güvenli, yerine gerçekten gerekli değildir 'getters' ve 'belirleyiciler örneği değişken kullanın sınıfınızın değişmesine gerek yoktur.
Bu, yalnızca karmaşık davranışlar olduğunda özellikler oluşturmaya ihtiyacınız olduğu ve soruda açıklandığı gibi, basit bir örnek değişkeninin gerekli olduğu tek şey olduğu için, yalnızca örnek değişkenini kullanabileceğiniz anlamına gelir.