2014-11-07 28 views
5

Python içinde senin import ifadeleri sıralama hakkında here okumak, ama ne olursa henüz aktarılmayan ihtiyaçlar bağımlılıkları ithal ediyoruz şey? Bu derlenmiş diller arasındaki fark ve yorumlanmış mı? JavaScript arka planından ve komut dosyalarınızı yüklediğiniz sıradan geliyorum, oysa Python umursamıyor gibi görünüyor. Teşekkürler.mu Python ithalat sipariş madde

+0

Yani bu yöntemlerin içe aktarımı için geçerlidir. Gibi: küçük baskı için x x ithal xx' – Dusty

cevap

5

Hayır, öyle değil, çünkü her bir python modülü kendi kendine yeten olmalı ve ihtiyaç duyduğu her şeyi almalıdır. Bu, tüm modülleri ve yalnızca belirli bölümlerini içe aktarmak için geçerlidir.

13

Alma siparişi önemli değil. Bir modül diğer modüllere dayanıyorsa, bunları kendisinin içe aktarması gerekir. Python, her bir .py dosyasını, o dosyada göründüğü kadarıyla bağımsız bir birim olarak ele alır.

(Teknik olarak, içe aktarma sırasının değiştirilmesi davranışları değiştirebilir, çünkü modüller ilk alındıktan sonra çalıştırılan başlatma koduna sahip olabilirler. Bu başlatma kodu yan etkilere sahipse, modüllerin birbiriyle etkileşime girmesi mümkündür. Bu modüller bir tasarım kusuru olurdu. İthalat siparişi önemli değildir, bu nedenle başlatma kodu herhangi bir özel siparişe bağlı olmamak için yazılmalıdır.)

+0

+1. –

+1

Biri, paket içe aktarma * paradigmasından (önerilen) kullanmıyorsa, potansiyel olarak tanımların üzerine yazılabilir. Bu örneğin, 'matematik içe aktarma *' ve 'numpy import *' ile gerçekleşir. –

+1

Modülün '__init__' davranışının yan etkileri varsa, içe aktarma sırası önemli olabilir. Örneğin, TensorFlow öğesinin içe aktarılması, kullanılabilir toplam GPU belleğini tüketir. Caffe, TensorFlow'u içe aktardıktan sonra almayı denerseniz, Caffe, GPU (lar) dan herhangi bir bellek kaynağı talep edemez. Çakışan ayarları tanımlayan veya dosyalara yer kilitleri ekleyen genişletme modülleriyle daha basit şeyler olabilir. "İçe Aktar" sadece "bazı kodları yürütmek" anlamına gelir. Bu, yaygın olarak kullanılan kütüphaneler arasında, ithalat emrinin önemli olmamasının kötü bir uygulama olduğu için önemli olmamalıdır. – ely

1

Standart python kitaplıkları içe aktarırken Python alma sırası önemli değildir/modüller. Ancak, döngüsel bağımlılık döngüsünde sıkışmış olabileceğiniz için yerel uygulama/kitaplığa özgü içe aktarmalarınız için sipariş önemlidir.