Veri öznitelikleri aynı isimli yöntem özniteliklerini bastırırlar. Büyük
        programlardaki zor fark edilen isim çakışması hatalarından kaçınmak
        için çakışmaları en aza indirecek bir isimlendirme yöntemi kullanmak
        akıllıca olur. Yöntem isimlerini büyük harf ile başlatılırken, veri
        isimleri özel bir karakter (alt çizgi gibi) ile başlatılabilir.
        Yöntemler için fiil ve veri yapıları için isim olan kelimeler
        kullanılabilir.
      
        Veri özniteliklerine o nesnenin kullanıcıları (“istemcileri”)
        başvuru yapabileceği gibi, yöntemler de bunlara başvuruda bulunabilirler.
        Başka bir deyişle, sınıflar tamamen soyut veri türleri oluşturmak için
        kullanılamazlar. Aslında, Python'da hiçbir şey veri saklamayı zorlamayı
        mümkün kılmaz.
      
        Kullanıcılar nesnelerin veri özniteliklerini dikkatli kullanmalılar; çünkü
        istemciler yöntemler tarafından kullanılan önemli değişkenlere atama yaparak
        istenmeyen hatalara sebep olabilirler. İstemcilerin, isim çakışmalarından
        kaçındıkları sürece, bir nesneye yöntemlerinin geçerliliğini etkilemeden
        kendi veri özniteliklerini ekleyebileceklerine dikkat edin.
      
        Yöntem içinden veri özniteliklerine (ya da diğer yöntemlere!) başvuruda
        bulunmanın kestirme bir yolu yoktur. Bunun aslında yöntemlerin
        okunabilirliğini artırdığını düşünüyorum; bir yönteme göz attığınızda
        yerel değişkenler ile nesne değişkenlerini birbirilerine karıştırma şansı
        yoktur.
      
        Usul olarak yöntemlerin ilk argümanına self
        adı verilir. Bu tamamen usule dayanır; self isminin
        Python için kesinlikle hiç bir özel anlamı yoktur. Bu usule uymazsanız
        programınız diğer Python programcıları tarafından daha zor okunur ve
        sınıf tarayıcısı (class browser) programları da bu usule dayanıyor
        olabilirler.
      
        Sınıf özniteliği olan her işlev, o sınıfın nesneleri için bir
        yöntem tanımlar. İşlev tanımının sınıf tanımı içerisinde olması şart
        değildir; işlevi, sınıf içindeki yerel bir değişkene atamak da mümkündür.
        Örneğin:
# Sınıf dışında tanımlanmış işlev
def f1(self, x, y):
    return min(x, x+y)
class C:
    f = f1
    def g(self):
        return 'Merhaba'
    h = g
        Şimdi f, g ve h'ın
        hepsi C sınıfının özellikleri oldular ve aynı anda
        C sınıfının nesnelerinin de
        yöntemleridirler (g ve h birbirinin
        tamamen aynısıdır). Bu tür uygulamanın genellikle sadece okuyucunun
        kafasını karıştırmaya yaradığına dikkat edin. Yöntemler self
        argümanının yöntem olan özelliğini kullanarak diğer yöntemleri
        çağırabilirler:
class Bag:
    def __init__(self):
        self.data = []
    def add(self, x):
        self.data.append(x)
    def addtwice(self, x):
        self.add(x)
        self.add(x)
        Yöntemler sıradan işlevlerin yaptığı şekilde global değişkenlere
        başvuru yapabilirler. Bir yönteme ilişkin global etki alanı sınıf
        tanımının bulunduğu modüldür. Sınıfın kendisi asla global etki alanı
        olarak kullanılmaz. Bir yöntem içinde global veri kullanmak için ender
        olarak iyi bir sebep olduğu halde, global etki alanı kullanımın pek çok
        mantıklı sebebi vardır. Örneğin, global etki alanına yüklenmiş işlev ve
        modülleri, yöntemler ve bunun içinde tanımlanmış diğer işlev ve sınıflar
        kullanılabilir. Genellikle yöntemi içeren sınıfın kendisi bu global etki
        alanı içinde tanımlanmıştır ve bir sonraki kısımda bir yöntemin kendi
        sınıfına başvurmak istemesi için birkaç iyi sebep bulacağız!