SORU
11 EKİM 2008, CUMARTESİ


Python ithalat için başparmak iyi kurallar nelerdir?

Hangi Python modülleri alabilirsiniz yollar kalabalık biraz kafam karıştı.

import X
import X as Y
from A import B

Kapsam belirleme ve ad alanları hakkında okuyup duruyorum, ama en iyi stratejinin ne olduğu konusunda bazı öneriler, hangi şartlar altında ve neden istiyorum. İthalat modülü bir seviye ya da işlev/seviye bir yöntem olur? __init__.py veya modülde kendisi kod?

Benim sorum gerçekten "12 ** belli olmasına rağmen" ilgili. tarafından yanıtlanmadı

CEVAP
11 EKİM 2008, CUMARTESİ


Firmamızda üretim kodu aşağıdaki kurallara uymaya çalışıyoruz.

Ana dosyanın kütüphane sonra dosyanın başında, örneğin ithalat veriyoruz:

"""
Registry related functionality.
"""
import wx
# ...

Eğer ithal modülünde birkaç biri bir sınıf ithal ediyoruz şimdi Eğer kodu sadece son kısmını, örneğin kullanmak zorunda böylece adını doğrudan ithal ediyoruz,:

from RegistryController import RegistryController
from ui.windows.lists import ListCtrl, DynamicListCtrl

Sınıflar, örneğin liste, tüm olası istisnalar onlarca içeren modüller, ancak vardır. Sonra modülü kendisi ithal ediyoruz ve bunun için referans kodu:

from main.core import Exceptions
# ...
raise Exceptions.FileNotFound()

Belirli bir modül veya sınıf kullanımı için arama zor yapar çünkü import X as Y nadiren mümkün olduğunca kullanıyoruz. Bazen, ancak, aynı ada sahip, ancak farklı modüllerde bulunan eğer iki ders almak istiyorsanız, örneğin, bunu kullanmak zorunda:

from Queue import Queue
from main.core.MessageQueue import Queue as MessageQueue

Genel bir kural olarak, yöntemleri içinde ithalat yapmıyoruz onlar sadece kod daha yavaş ve daha az okunabilir hale getirmek. Bu kolayca siklik ithalat sorunu çözmek için iyi bir yol bulmak olabilir, ama daha iyi bir çözüm kodu yeniden.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Joshua Benedict

    Joshua Bened

    26 EKİM 2013
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012