Python'daki meta sınıfları öğrenmeye çalışıyorum. Ana fikri anladım, ama mekanizmayı aktive edemiyorum. Anladığım kadarıyla, M sınıfını global veya sınıf seviyesinde __metaclass__
ayarlayarak bir K sınıfı oluştururken M sınıfını metaclass olarak belirleyebilirsiniz. Bu test etmek için aşağıdaki programı yazdım: Ancak__metaclass__, Python'da bir meta sınıfın kullanılmasını zorunlu kılmamalıdır?
p = print
class M(type):
def __init__(*args):
type.__init__(*args)
print("The rain in Spain")
p(1)
class ClassMeta:
__metaclass__ = M
p(2)
__metaclass__ = M
class GlobalMeta: pass
p(3)
M('NotMeta2',(), {})
p(4)
, bunu çalıştırdığınızda, aşağıdaki çıktıyı almak:
C:\Documents and Settings\Daniel Wong\Desktop>python --version Python 3.0.1 C:\Documents and Settings\Daniel Wong\Desktop>python meta.py 1 2 3 The rain in Spain 4
ben "İspanya'da yağmur" bakın gerekmiyor sonra 1 ve 2? Burada neler oluyor?
Çift negatif "zorlama ... zor değil" ayrıştırmak zordur. Soruyu çözebilir misiniz lütfen? –
Geri bildirim için teşekkürler. Şimdi anlaması daha kolay olmalı. – allyourcode