猫史档案馆


编程猫面向对象编程初探

用户:TunaFish2K_名字该与时俱进了TunaFish2K_名字该与时俱进了查看:0 回复:0 评论:0 创建时间:2022-03-28T19:22:45


首先说一句,之前发帖编程猫给我格式全吞emmmm

编程猫编程向来都是面向过程的,大型项目里可能会导致混乱。在这里提出鄙人自己想出来的一个面向对象的实践,仅供参考。

对象,包含了字段和方法。在普通的过程编程中,表示一种属性的变量通常只有一个,直接定义变量即可。但是在面向对象的编程中,一个变量要存储整个对象的数据,无法再进行变量赋值。因此我提出了结构体,用于存储数据。它在我的Codemao Pure Api中有所体现。现在的结构体依然依赖于循环+查找键,效率较为低下,以后会实现hash表,同时变得更加自由。

拟定结构体方法如下:

Struct(pattern,datas) struct构造函数

例子:a=Struct("name,id","tuna,01") => a="name=tuna,id=01"

struct_get_element(datas,element) 获取结构体的字段

例子:b=struct_get_element(a,"name") => b="tuna"

struct_set_element(datas,element,value) 获取结构体的字段

例子:a=struct_set_element(a,"name","bbb") => a="name=bbb,id=01"

这样我们就有了承载字段的有力武器。

方法直接利用函数制作。一开始我的想法是函数将修改后的对象返回。但是这样的话,那些要返回数据的函数怎么办呢?代码会十分喵。因此,我将使用列表作为模拟内存的方法,变量将持有结构体在列表中的索引。我会提供一组函数来操作这些列表。

函数十分自由,唯一的要求是存储数据的结构体应从函数第一个参数传入。类函数名应以类名+函数名命名。类的构造函数即为其名称。

例子:

类Students

mem=[]

cnt=0

pattern="name,id"

gen=Struct(pattern,",")

def Students(self,name,id):

    struct_set_element(self,"name",name)

    struct_set_element(self,"id",id)

def StudentsPrint(self):

    说(struct_get_element(self,"name")+"是"+struct_get_element(self,"id")

mem尾部插入(gen)

s1=cnt

Student(s1)

StudentPrint(s1)

这里就完成了面向对象的初步探索,希望大家予以改进,提出意见。

 

 


回复

上一页1 页 / 共 0下一页