用户:
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)
这里就完成了面向对象的初步探索,希望大家予以改进,提出意见。