2
我读到:“元类是类的类,就像类定义类的实例是如何工作的,元类定义了类的行为方式,类是元类的实例。Java中的python ==接口中的元类?
我想知道它与Java中的interface
有什么不同。 interface
也提供了一个蓝图为类遵循。
我读到:“元类是类的类,就像类定义类的实例是如何工作的,元类定义了类的行为方式,类是元类的实例。Java中的python ==接口中的元类?
我想知道它与Java中的interface
有什么不同。 interface
也提供了一个蓝图为类遵循。
号
关于Python中的元类:
元类Python中是这是用来创建类的类。你在Python中创建的类只是它的元类的一个实例。 type
是Python中最超级的元类。
在Python中,一个类被建模为一个对象,通过将对象的所有属性附加到类中,它为您提供了很大的使用灵活性。例如,您甚至可以动态创建类定义,就像创建类的实例一样。
This is a good read.
关于接口在Java中:
首先,一个interface
不是一个class
。它只是另一个type
(Java中的接口和类都是类型)。类和接口的确在Java中密切相关(接口是类的蓝图)。但它们是完全不同的类型。 java中的接口只是一种实现抽象的机制。
结论:在Python中,你真的没有像java interface
这样的东西。
不,它不是。你可能想阅读这个http://stackoverflow.com/questions/100003/what-is-a-metaclass-in-python。 – adarsh
我刚才读到了,感到困惑。我希望看到'metaclass'与'interface'有什么不同。它们都定义了所有继承它们的类必须遵循的规则,对吧? –
在基本级别上,metaclass类似于java中的Class类...但是,Java!= Python ......所以你不能指望它们完全相同...... – Codebender