SORU
23 EYLÜL 2008, Salı


__Ekleme kodu init__.py

Django model sistemin nasıl çalıştığına bir göz alıyorum ve anlamadığım bir şey fark ettim.

Geçerli dizin bir paket olduğunu belirtmek için __init__.py boş bir dosya oluşturmak olduğunu biliyorum. Ve __init__.py bazı değişken ayarlayabilirsiniz * işleri düzgün al.

Ama django tablolar ithalat ve __init__.py bir sürü ders tanımlar bir sürü ekler. Neden? Bu işler karışık göstermemiş mi? __init__.py bu kod gerektiren bir sebep var mı?

CEVAP
23 EYLÜL 2008, Salı


__init__.py tüm ithalat içeren paket (dizin) aldığınızda kullanılabilir.

Örnek:

./dir/__init__.py:

import something

./test.py:

import dir
# can now use dir.something

EDİT: söylemeyi unutmuşum, __init__.py kod dizininden herhangi bir modülü içe ilk kez çalışır. Normalde seviye paketi hazırlama herhangi bir kod koymak için iyi bir yerdir.

EDİT2: dgrant benim örnekte olası bir karışıklığa işaret etti. 14* import something *ithalat herhangi bir modülü, paket gerekli değil. Örneğin, import datetime, o zaman bizim üst düzey test.py ile hem bu parçacıkları çalışır: değiştirebiliriz

import dir
print dir.datetime.datetime.now()

ve

import dir.some_module_in_dir
print dir.datetime.datetime.now()

Sonuç: tüm atanan isimler __init__.py, ithal modüller, fonksiyonlar ya da sınıflar, otomatik olarak kullanılabilir paket ad her aldığınız paket veya modül paketi.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bigapplemagic

    Bigapplemagi

    22 EYLÜL 2011
  • Commander Chalkboard

    Commander Ch

    20 Ocak 2014
  • SelmerSaxMan

    SelmerSaxMan

    24 HAZİRAN 2006