Raf, nesne kalıcılığı için güçlü bir Python modülüdür. Bir nesneyi rafa kaldırdığınızda, nesne değerinin bilindiği bir anahtar atamanız gerekir. Bu şekilde, raf dosyası saklanan değerlerin bir veritabanı haline gelir ve bunlara herhangi bir zamanda erişilebilir.
Python'daki Raflar için Örnek Kod
Bir nesneyi rafa almak için önce modülü içe aktarın ve ardından nesne değerini aşağıdaki gibi atayın:
ithalat hasıraltı
veritabanı = shelve.open (dosyaadı.suffix)
object = Object ()
database ['key'] = nesne
Örneğin, bir stok veritabanını saklamak istiyorsanız, aşağıdaki kodu uyarlayabilirsiniz:
ithalat hasıraltı
stockvalues_db = shelve.open ('stockvalues.db')
object_ibm = Değerler.ibm ()
stockvalues_db ['ibm'] = nesne_ibm
object_vmw = Değerler.vmw ()
stockvalues_db ['vmw'] = nesne_vmw
object_db = Değerler.db ()
stockvalues_db ['db'] = nesne_db
Bir "hisse senedi değerleri.db" zaten açıldı, tekrar açmanıza gerek yok. Bunun yerine, aynı anda birden fazla veritabanı açabilir, her birine istediğiniz zaman yazabilir ve ayrılabilirsiniz
piton program sona erdiğinde bunları kapatmak için. Örneğin, her bir sembol için, önceki koda aşağıdakileri ekleyerek ayrı bir ad veritabanı tutabilirsiniz:## rafın zaten içe aktarıldığını varsayarsak
stocknames_db = shelve.open ('stocknames.db')
objectname_ibm = Adlar.ibm ()
stocknames_db ['ibm'] = nesneadı_ibm
objectname_vmw = Adlar.vmw ()
stocknames_db ['vmw'] = nesneadı_vmw
objectname_db = Adlar.db ()
stocknames_db ['db'] = nesneadı_db
Veritabanı dosyasının adında veya sonekindeki herhangi bir değişikliğin farklı bir dosya ve dolayısıyla farklı bir veritabanı oluşturduğunu unutmayın.
Sonuç, verilen değerleri içeren ikinci bir veritabanı dosyasıdır. Kendiliğinden biçimlendirilmiş formatlarda yazılan çoğu dosyanın aksine, raflanmış veritabanları Kayıtlı ikili biçimde.
Veriler dosyaya yazıldıktan sonra, herhangi bir zamanda geri çağrılabilir. Daha sonraki bir oturumda verileri geri yüklemek isterseniz, dosyayı yeniden açın. Aynı oturum ise, değeri hatırlayın; raf veritabanı dosyaları okuma-yazma modunda açılır. Bunu başarmak için temel sözdizimi aşağıdadır:
ithalat hasıraltı
veritabanı = shelve.open (dosyaadı.suffix)
object = veritabanı ['anahtar']
Dolayısıyla, önceki örnekten bir örnek şöyle olacaktır:
ithalat hasıraltı
stockname_file = shelve.open ('stocknames.db')
stockname_ibm = stok adı_dosya ['ibm']
stockname_db = stok adı_dosya ['db']
Raflı Dikkat Edilmesi Gerekenler
Veritabanının siz kapatana kadar (veya program sonlanıncaya kadar) açık kaldığını unutmamak önemlidir. Bu nedenle, herhangi bir boyutta bir program yazıyorsanız, onunla çalıştıktan sonra veritabanını kapatmak istersiniz. Aksi takdirde, tüm veritabanı (yalnızca istediğiniz değer değil) bellekte kalır ve bilgi işlem kaynakları.
Bir raf dosyasını kapatmak için aşağıdaki sözdizimini kullanın:
database.close ()
Yukarıdaki kod örneklerinin tümü bir programa dahil edilmiş olsaydı, bu noktada açık ve bellek tüketen iki veritabanı dosyamız olurdu. Dolayısıyla, önceki örnekte hisse senedi adlarını okuduktan sonra, her veritabanını sırayla aşağıdaki gibi kapatabilirsiniz:
stockvalues_db.close ()
stocknames_db.close ()
stockname_file.close ()