SORU
27 NİSAN 2010, Salı


`İthalat işletim sistemi kullanmalıyım.yolu` veya `ithal os`?

official documentation, os.path göre bir modül. , Alma tercih edilen yolu nedir böyle?

# Should I always import it explicitly?
import os.path

Ya da...

# Is importing os enough?
import os

Lütfen cevap verme "benim için os works alma". Benim için de şu an (Python 2.6 olarak) çalışır. Öğrenmek istediğim bu konu hakkında herhangi bir resmi öneri. Eğer bu soruya cevap verirseniz, lütfenbaşvurularınızı gönderin.

CEVAP
27 NİSAN 2010, Salı


os.path komik bir şekilde çalışır. os bir submodule path ile bir paket olması gerektiği gibi görünüyor ama gerçekte os sys.modules büyü os.path enjekte ediyor bu normal bir modül. Ne olacağını burada

  • Python başladığında, sys.modules yükler modülleri bir demet. Komut herhangi bir isim bağlı değil, ama bir şekilde onları alırken zaten oluşturulan modülleri erişebilirsiniz.

    • sys.modules hangi modülleri önbelleğe alınan bir dict. Bir modülü aldığınızda, Eğer önceden bir yerlerde alınmış, örnek sys.modules içinde saklı olur.
  • os Python başlatıldığında yüklenen modüller arasında yer alıyor. Os-belirli bir yol modülü path vasfını atar.

  • sys.modules['os.path'] = path yapmak mümkün olduğunu "import os.path bir submodule olmasına rağmen" gibi. yani enjekte eder

os.path görmeye çalışırımkullanmak istediğim bir modülyerineos modüle bir şeyolmasa bile , bu kadargerçektenbir paket bir submodule olarak adlandırılan os ithal biri gibiBen her zaman import os.path. Bu os.path belgelenmiştir nasıl ile tutarlıdır.


Bu arada, yapısı bu tür bir Python programcıları' modüller ve paketler ve kod organizasyonu hakkında erken karışıklığı sanırım. bir sürü yol açar Bu gerçekten iki nedenden dolayı

  1. Eğer sence os bir paket ve biliyorum yapabilirsin import os ve erişimi sağlamak için submodule os.path olabilir sürpriz daha sonra zaman yapamazsın import twisted ve otomatik olarak erişim twisted.spread olmadan alma.

  2. os.name normal bir şey, bir dize olduğundan kafa karıştırıcı ve os.path bir modül. Ben aynı düzeyde hep şey bir tür olması her zaman __init__.py boş dosyaları ile benim paketleri yapısı: modülü/paketi veya başka bir şeyler. Birkaç büyük Python projeleri daha iyi yapılandırılmış kod yapmak eğilimindedir bu yaklaşım, alır.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FOSDEM

    FOSDEM

    13 Ocak 2009
  • GOTO Conferences

    GOTO Confere

    3 EKİM 2011
  • Wronchi Animation

    Wronchi Anim

    9 Mayıs 2011