2013-06-02 31 views
5

Örneğin, aşağıdaki kodda:Neden Bir sınıf olsun "sözde" ne zaman başlatılır değil? - Python

class test: 
    print "Hi" 

Python otomatik 'merhaba' basacaktır. Bu bariz bir soru ama bir 'test' nesne başlatıldı sürece Python Bunu neden ben bulamazsam üzgünüm. * Sadece birkaç ay önce genel olarak programlama başladı ve Python bu yüzden bana biraz merhamet yedek lütfen benim ilk dilidir.

cevap

7

Bir sınıf inşa ediyoruz; Bir sınıfın gövdesi, tanımı oluşturmak için bir işlev olarak yürütülür. Bu 'işlevin' yerel ad alanı, sınıfı oluşturan öznitelikler dizisini oluşturur. class statement belgelerine bakın.

yöntemleri içinde sınıf gövde çalıştırılmaz; işlev tanımları gibi, önce onları aramanız gerekir. Ama eğer ilk önce sınıf bedenini aramadıysan, sınıfın hangi yöntemlere sahip olduğunu bilmiyorsun.

Aynı şekilde, bir modül içerisindeki herhangi bir üst düzey kod, modül ad alanını oluşturmak için bir modülü içe aktardığınızda yürütülür. Eğer bir modülde print "Hi" koyarsanız, o da hemen yürütülür.

+0

Sınıfın gövdesinin bir işlev olarak yürütüldüğünü sanmıyorum. Karşılaşıldığında (ya da sonundan hemen sonra) gerçekleştiğine inanıyorum. Ayrıca, bir sınıfı daha sonra çağırdığınızda, tanımdan sonra aslında __init __() işlevini (veya kendi sınıfını tanımlamıyorsa temel sınıfın) çağırırsınız. – martineau

İlgili konular