Python bu ikisi (diğerleri arasında) yerleşik nesneye sahiptir. Onlar sadece nesnelerdir; Başlangıçta, henüz herhangi bir isimleri yok, ama biz neye atıfta bulunduğumuzu bilmek için, onlara 0x600D
ve 0xBAD
diyelim. Program True
atıfta zaman
bir Python (2.x) komut dosyası çalıştırmak için başlamadan önce, adı True
nesneye 0x600D
bağlı alır ve adı False
nesneye 0xBAD
bağlı olur, yani, bu 0x600D
bakar .
0x600D
ve 0xBAD
genellikle isimlerin True
ve False
tarafından kullanıldığını bilmek için, onlar basılmış olsun zaman ne çıktı var, yani 0x600D
getiriler 'True'
ve benzeri bir __str__
yöntemi.
True = False
artık farklı bir nesne için adı True
bağlanır. Bundan sonra, True
ve False
adlarının her ikisi de False
çıktıları çıktığında False
çıktıları ile aynı nesneyi ifade eder.
True = True
gerçekten bir şey yapmaz: Bu isim
True
ile anılan nesneyi alır ve bu nesneye yeni (ve eski) adını
True
bağlanır. Bundan önce (önceki adımdan dolayı)
True
, bundan önce
0xBAD
anlamına gelir, bundan sonra hala
0xBAD
anlamına gelir. Bu nedenle, baskı hala
False
çıkışlarıdır. İlk
True = not True
adı True
0xBAD
olan bağlı olduğu nesne alır. Bu nesneyi not
operatörüne verir. not
, 0xBAD
'a başvurmak için hangi adı kullandığını (veya bilmediğini) bilmiyor, sadece 0xBAD
verildiğinde 0x600D
'u döndürmesi gerektiğini biliyor.Bu dönüş değeri, =
numaralı atama operatörüne bu nesneye True
adını bağlayarak verilir. adı True
yana
şimdi bir kez daha print True
çıkışları True
çağıran nesneye 0x600D
ifade eder ve dünya yeniden iyidir.
True = 1==1
False = 1==0
Veya bool değerlerden oluşan için tamsayı değişmezleri dönüştürerek:
o eski güzel şaka '#define gerçek FALSE değil mi eylem burada? – Amarghosh
Sürüm 3'te True = False ifadesi bir sintaks hatası ortaya çıkarır, bu yüzden sorunuzun 2 – jab
sürümüyle ilgili garip bir durum olduğunu varsayalım? detaylandırmak için bakım? – ghostdog74