Self系统的设计独特,其核心功能主要分为两个组件:Self虚拟机和Self世界。Self世界实质上是一个对象库,这里的Self程序就像图书馆中的书籍,每个程序都是世界中的一种对象。Self虚拟机则是这个图书馆的管理员,它负责执行这些Self程序,确保它们的运行流畅。Self虚拟机提供了丰富的原语服务,涵盖了基本的算...
在80年代末,David Ungar和Randy Smith于1986年在施乐帕洛阿托研究中心提出了Self语言的雏形,并在次年在OOPSLA'87的论文中详尽阐述了其“简单的力量”理念,即SELF: The Power of Simplicity。1987年初,Craig Chambers, Elgin Lee 和 Martin Rinard在Smalltalk平台上实现了Self的第一个实验性解释器,标志...
Self语言的设计理念强调了精简和效率。它摒弃了传统的类概念,仅保留对象这一核心概念,所有的操作都通过消息传递来完成。对象的属性不再被视为独立的变量,而是通过方法获取或修改,从而简化了属性的处理方式。变量和赋值的概念被动态地通过消息读取(槽读)和写入(槽写)所取代。在Self语言的程序设计实践...
self.name= name self.age = age def myfunc(self): print("Hello my name is " +self.name) p1 = Person("Bill", 63) p1.myfunc() self是个特殊形参,特殊在它“隐形”的传递参数,不像一般的函数似的那么直观的传递函数。至于它为什么能隐形的传递,这是创造这门语言的人赋予它的能力,或者说这是规定...
SELF对象包含named slots, 每个包含指向其他对象的reference.一些slots会被设计为parent slots. 当有信息发送到该某对象时, object遍历自身,找不到的话基于parent slot想上找。 无code的object相当于variable.有code的object相当于procedure, 同时也是prototype activation record. 当进行计算的时候,clone 自身,将selfslot...
神奇的self: 在Python类中规定,函数的第一个参数是实例对象本身,并且约定俗成,把其名字写为self。其作用相当于java中的this,表示当前类的对象,可以调用当前类中的属性和方法。 class是面向对象的设计思想,instance(也即是 object,对象)是根据 class 创建的。
在发展Self的过程中,Self的设计研究人员也探索了Self的程序设计。他们提出了traits的概念,用对象实现了名字(对象名或方法名)的管理,用动态继承实现模式转换。在实现Self系统的过程中,设计研究人员发展出了一种适应性编译(adaptive compilation)技术。这种技术的采用提高了Self代码的执行效率。
Self语言,是一种基于原型的面向对象程序设计语言,于1986年由施乐帕洛阿尔托研究中心的David Ungar和Randy Smith给出了最初的设计。
self的使用注意 学习前:你必须会什么?(在这里我已经默认你具备C语言的基础了) 什么是self,什么是类 一、本章笔记 注意:self会自动区分类方法 和 对象方法,如果在类方法中 使用self调用对象方法,那么会直接报错>不能在对象方法 或者 类方法中 利用self调用 当前self所在的方法(死循环)使用场景:可以用于 在对象方...