Pek çok kişi zarafeti ve sadeliği nedeniyle programlama için ilk dili olarak seçtiği için Python'un en şaşırtıcı dil olduğu söylenir. Geniş topluluğuna şükran, paketlerin fazlalığı ve tutarlı sözdizimi, deneyimli profesyoneller de Python kullanıyor. Hem yeni başlayanları hem de bazı profesyonel geliştiricileri rahatsız eden bir şey olmasına rağmen - Python'dan nesneler.
Değişken vs. değişmez
değişken varlıklar değiştirmek onların durum veya madde eşitsizliği açıklamak ve değişmez varlıklar durumlarını veya özlerini değiştiremezler. Böylece bir nesne oluşturulduğunda, özel bir Nesne Kimliği tahsis edildi. Çalışma zamanında, nesnenin türü belirtilir ve daha sonra güncellenemez. int, float, bool, str, tuple ve Unicode değişkenleri gibi yerleşik formlar değişmezdir. Liste, küme, bayt dizileri ve yerleşik kategorilerin sözlüğü gibi nesneler değiştirilebilir.
Kimliği ve Tür İşlevini Anlayın
entegre İD() yöntem, bir nesnenin kimliğini yalnızca bir tamsayı olarak içerir. Bu tam sayı normalde nesnenin depolama konumunu ifade eder. 'dır-dir' operatörü, iki nesnenin kimliklerini birbiriyle ilişkilendirir. entegre fonksiyon, tür(), bir nesnenin türünü döndürür. İki değişkeni karşılaştırın 'x' ve 'y', aynı değere sahip, eşitlik operatörünü kullanarak'x == y', çıktı alacak Doğru. Kullanmak id() işlevi, karşılaştırdık hafıza adresleri her iki değişkenin de çıktısı olacak Yanlış çünkü her iki değişken de farklıdır ve içerdikleri değerler aynı olmasına rağmen farklı bellek konumlarında bulunurlar.
Başka bir değişken yap 'z' hangi özdeş varlığa işaret eder 'x' atama operatörünü kullanarak yönlendiriyor '='. Kullanmak 'dır-dir' operatörü, ikisinin de aynı nesneye işaret ettiğini ve aynı bellek adreslerine sahip olduğunu bulduk.
Değişmez Değişken Tipleri
Bazı değişmez değişken türlerine bir göz atalım.
Tamsayı Veri Türü
Bir değişken tanımlayalım 'x'bir değere sahip olmak'10'. Yerleşik bir id() yöntemi ' konumunu bulmak için kullanılırx' hafızasında ve tür() türünü belirlemek için kullanılır. ' değerini değiştirmeye çalıştığımızdax', başarıyla değiştirilir, ancak bellek adresi farklı şekilde döndürülür. Bunun nedeni, aslında ' değerini değiştirmemiş olmamızdırx', ancak aynı isimde başka bir nesne yarattık'x' ve ona farklı bir değer atayın. Adını bağladık'x' yeni değere. Şimdi, ne zaman ararsan 'x' yeni değeri çıkaracak.
Dize Veri Türü
Dize veri türü için aynı, mevcut olanı değiştiremeyiz değişken ama yapmalıyız oluşturmak aynı isimle yeni bir tane. işte bizde tanımlanmış bir dize değişkeni 'x' ve eklemek istiyorum'w' sıfır indekslerine. çıktı verecek TipHata, dize nesnesinin güncellemeyi desteklemediğini gösteren.
Grup Veri Türü
Tuple tipine bir göz atın değişken, bir tanımladık demet 4 değerle. biz kullandık id() işlevi adresini çıkarmak için. değerini değiştirmek istediğimizde 0 dizin, verir TipHata bu demet, öğe atamasını veya güncellemesini desteklemiyor.
Aksine, yapabilirsiniz Güncelleme tüm demeti tanımlayarak kaşımak. Şimdi, her kontrol ettiğinizde, yeni bir değer ve yeni bir adres bulacaksınız.
Kayan Veri Türü
Float tipi bir değişkenimiz var 'x'. Kullanmak id() işlevi, adresini bulmalıyız. değerini değiştirmek istediğimizde dizin 1, verir TipHata bu şamandıra öğe değişikliğini desteklemiyor.
Tersine, biz güncelledik yüzer yeniden tanımlayarak. Artık ne zaman çağırsak yeni bir değer ve yeni bir adres bulacağız.
Değişken Değişken Türleri
Şimdi bazı değişken değişken türlerine bakacağız.
Liste Veri Türü
bir tanımladık liste adlıx' ve ona bazı değerler ekleyin. Süre Çalıştırmak, liste değerlerini gösterecek. Sen ne zaman Güncelleme listeye yeni değerler atayarak dizin 0 ve 2, bunu başarıyla yapacak.
Yukarıda açıklanan örnek, basit ve temel bir modifikasyon örneğidir. Değişebilirliği farklı bir düzeyde kontrol etmek için, aynı örneğe küçük bir değişiklikle bakalım. Yeni bir isim oluşturduk'y' ve onu aynı liste nesnesine bağladı. ' olup olmadığını kontrol ettiğimizdex' aynıdır 'y', True döndürür. Öte yandan, hem'x' ve 'y' var aynı hafıza adresler.
Şimdi a'ya yeni bir değer ekleyin liste adı 'x' ve güncellenmiş çıktıyı kontrol edin.
Şimdi, listeyi kontrol ettiğinizde isim 'y', 'x' için görüntülediği listenin aynısını görüntüler. Bunun anlamı, 'x' ve 'y' olmak üzere iki farklı adı olan aynı nesne listesini güncellediğimiz zaman. Her ikisi de aynıdır ve değişiklikten sonra bile aynı bellek adreslerini paylaşır.
Sözlük Veri Türü
Sözlükler Python'da yaygın olarak kullanılan değişkenler olduğundan, sözlüklerin değişebilirliğine bir göz atalım. ' isimli bir sözlük tanımladıkdikte' üç anahtar ve değerleri ile. Çıktısını aldığımızda, tüm içeriğini gösterecektir. Her sözlük değerini ayrı ayrı yazdırabileceğiniz gibi, anahtarlar dizinler yerine.
Biz istiyoruz değişiklik güncelleyerek belirli bir değer anahtar 'Ad'. Güncellenmiş sözlüğü çıkaracak. Sözlük anahtarları değişmez.
bir tanımlayalım liste ve demet ayrı ayrı. Emin olun demet sahip olmalı liste türü değeri içinde ve bir liste var demet türü değeri dolayısıyla içinde.
bir demet sahip liste onun üzerinde 0 dizin yani değiştirdiğinizde 0 dizin bir demetin, bahsetmek zorundasın dizin değiştirmek istediğiniz bir listenin. Liste değişmez olduğu için değişiklik gerçekleşir.
Aksine, liste değişkeni güncellenemez çünkü bir demet üzerinde 0 dizin, hangisi değişebilir.
Sonuç
Python'da değiştirilebilir ve değişmez arasında farklılıklar gördük. Python'daki her şeyin bir nesne olarak adlandırıldığı konusunda fikrinizi netleştirmelisiniz. Öncelikle, değişken ve değişken nesneler arasındaki ayrım. değişmez.