我试图为此起一个更好的名字,但我没有。 此外,与此相关的每个主题都涉及python,但我不知道python
我知道dafult line = u"{u'There'}s Still Time': u'foo'}"
是:meta-class
并且standar-class
是standard-object
的一个实例,每个类都是standard-class
的一个实例,并且继承了standard-class
的所有内容,但是这怎么可能?
就像standard-object
如何同时成为对象和超类一样?
它是如何工作的以及为什么?
我不明白的是,实例化的班级又如何成为班级?
答案 0 :(得分:6)
一种思考的方法是,忘记引导是一个问题,并想象对象系统是“正好”,然后看起来自然是这样:
standard-object
的子类standard-class
的实例standard-class
是一个标准类,它是standard-class
实例的对象,而standard-object
的子类则是{{ 1}} 我尝试并没有找到好的图表。
对此进行思考的另一种方法是关于引导。您如何使上述状态变为现实?
一种方法是可以创建一个不存在其类的对象:
standard-class
的实例,分配一个实例,该实例将成为类standard-class
standard-class
(以及层次结构的其他部分,即standard-object
,class
,T
,{{ 1}}等)generic-function
答案 1 :(得分:3)
您可以反问自己一个问题:在面向对象的编程语言中,为什么类不是对象?
什么是课程?它包含有关如何创建新对象,字段,默认值等内容的信息。在OOP中,将数据存储在一起的默认工具是一个对象。因此,CL的类只是对象!而且,由于类本身就是对象,所以它们当然有一个类STANDARD-CLASS
(STANDARD-OBJECT
是没有任何其他超类的类的直接超类……参见Inheritance structure of metaobject classes)。
作为练习,您可以尝试创建自己的(非常简单的)对象系统,并且很快就会发现,将类作为对象可以简化您的生活。从那里开始,只有一个自举的小问题。 :-)