SORU
12 ŞUBAT 2013, Salı


Standart bir yöntem Python iki değişken takas var mı?

Python, iki değişken değerleri bu sözdizimini kullanarak takas gördüm:

left, right = right, left

Bu standart şekilde iki değişken değerleri değiştirmek veya bir iki değişken kongre tarafından genellikle takas başka bir anlamı olduğu kabul edilir?

CEVAP
12 ŞUBAT 2013, Salı


Python sağdan sola doğru bir ifade olarak değerlendirilir. Dikkat edin atama, değerlendirme, sağ tarafı önce değerlendirilir sol tarafı.

http://docs.python.org/2/reference/expressions.html#evaluation-order

Bu ifade aşağıdaki a,b = b,a anlamına gelir :

  • b,a değerlendirilir, bir demet demek ki sağ tarafta iki öğenin bellekte oluşturulur. İki öğesi nesne tanımlayıcıları b ve öğretim programı yürütme sırasında encoutered önce mevcut olduğunu a tarafından belirlenir
  • sadece bu başlığın oluşturulduktan sonra, bu başlığın nesne görevinde hala yapılmadı, ama Python DAHİLİ olarak nerede olduğunu bilir önemli değil
  • sonra, sol taraftaki başlığın sol tarafına atanır demek ki değerlendirilir
  • Sol tarafta oluşmaktadır iki tanımlayıcıları, demet olduğunu çözdükten amacıyla ilk tanımlayıcı a atanan ilk elemanın demet (nesne oldu formelybtakas önce b adı) vardı çünkü
    ve b başlığın ikinci unsuru atanan ikinci tanımlayıcı eskiden . nesne ( ^strong>birtakas önce, tanımlayıcıları ** 9)

Bu mekanizma etkili nesne tanımlayıcıları a b atanmış takas vardır

Yani, Sorunuzun cevabı: EVET, iki nesne, iki tanımlayıcıları değiş tokuş etmek için standart bir yol.
Bu arada, nesneleri değil, değişkenler, nesneler.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Associated Press

    Associated P

    18 EYLÜL 2006
  • Chanre Joubert

    Chanre Joube

    27 Temmuz 2012
  • Joseph Hayhoe

    Joseph Hayho

    20 Mayıs 2010