Bir nesne dizine eklendiğinde, nesne sınıfında ilk olarak __getitem__
özel yöntemi aranır. Bir sınıfın kendisi bir nesnedir ve bir sınıfın sınıfı genellikle type
'dur. Yani onun metaclass yeniden tanımlayabilirsiniz (o type
bir alt sınıfını yapmak), bir sınıf için __getitem__
geçersiz kılmak için: metaclass bu şekilde belirtilir Python3 yılında
class MetaA(type):
def __getitem__(cls,val):
return "It works"
class A(object):
__metaclass__=MetaA
pass
print(A[0])
# It works
:
class A(object, metaclass=MetaA):
pass
Güzel ve sweet :) – Woltan
Python3 farklı bir şekilde belirtilir. Yukarıda nasıl olduğunu göstermek için kod ekledim. –
@ups: py3 içinde – unutbu