2012-05-05 19 views
6

Bir Java programcısıyım ve her zaman Classes için ayrı dosyalar oluşturdum, python öğrenmeye çalışıyorum ve doğru olarak öğrenmek istiyorum. Python'da Classes'ı farklı dosyalara yerleştirmek maliyetlidir, yani bir dosya yalnızca bir sınıf içerir. Bir blogda okudum çünkü bu maliyetin yüksek olması, . operatörünün çözünürlüğünün python'da çalışma zamanında gerçekleşmesidir (Java için derleme zamanında gerçekleşir).Python'da dersleri farklı dosyalara yerleştirmek pahalı mıdır?

Not: Bence ayrı dosyalarda koydu ki diğer mesajlar okudum ama herhangi bir şekilde costlier eğer

cevap

8

Bu bir ölçüde biraz daha pahalı ama değil söz etmeyin Muhtemelen umursuyorsunuz. Sen yaparak bu ekstra maliyet taban alınabilir:

from module import Class 

gibi o sınıf o modülü aracılığıyla arama yapmak zorunda değildir, yani yerel ad alanında bir değişkene atanacak. Bununla birlikte, gerçekte, bunun önemli olmasının muhtemel olmadığı düşünülmektedir. Bunun gibi bir şeye bakmanın bedeli küçücük olacak ve kodunuzu en okunaklı yapan şeyleri yapmaya odaklanmalısınız. Programınız için mantıklı olan modülleri ve paketler arasında bölünmüş sınıfları ve bunları net olarak koruyun.

Eğer örneğin, mesela programınızın yapabilirsiniz assign it to a local variable for that loop için bir darboğaz olan bir döngüde art arda şey, kullandığınız: optimizasyon bu tür önemli olması pek mümkün olduğuna

import module 

... 

some_important_thing = module.some_important_thing 

#Bottleneck loop 
for item in items: 
    #module.some_important_thing() 
    some_important_thing() 

Not Şey, ve sadece bunu yapman gereken bir kanıtın olduğu yerde optimize etmelisin.

+2

Sanırım cesaret kırılmış bir dönemdir. Genel olarak, normal olarak ithal etmek daha iyidir, böylece ad alanınızı karıştırmayın, evet. Ancak, bazı durumlarda, örneğin, kodunuz boyunca çok fazla şey ithal ediyorsanız, bu tür bir içe aktarmanın kullanılmasıyla ilgili bir sorun yoktur. –

+0

Bu, bir değişkendeki sınıf ismini bir değişken içinde saklayan, yani kodumun performansını artıran inanılmaz bir özelliktir. –

+0

@Lattyware Düzenlememde ne demek istediğimi belirttiğinizden beri yorumumu kaldırdım ama ne kadar çok şey ithal ettiniz? – jamylak

İlgili konular