由此进入工作面类的计算的app,子路由及后续如下:
定义了一个名为
Init_success
的类属性,并将其初始化为False
。类属性是属于类本身的属性,而不是类的实例(对象)属性。
其中Ex_Guid = TEXPstopeClass()
是把类赋予给了一个实体,其父级是:
class TBase(models.Model):
Visible = models.BooleanField(default=True) # 可见字段,布尔类型
Enabled = models.BooleanField(default=True) # 可用字段,布尔类型
Keyword = models.CharField(max_length=100) # Keyword字段,Char类型,最大长度为100
Name = models.CharField(max_length=255) # name字段,Char类型,最大长度为255
Visible = models.BooleanField(default=True)
和Enabled = models.BooleanField(default=True)
是布尔类型的字段,名为Visible
,默认为True
,可能用于标识是否可见;Keyword = models.CharField(max_length=100)
是一个Char类型的字段,名为Keyword
,最大长度为100个字符,可能用于存储关键词信息;Name = models.CharField(max_length=255)
可能用于存储名称信息。def Input(self, Str):
是一个方法(函数),名为Input
,它接收一个参数Str
。这个方法的作用是从一个字符串Str
中解析数据,并将数据赋值给TBase
对象的相应属性,即Visible
、Enabled
、Keyword
和Name
;Output
没有接收任何参数,将TBase
对象的属性转换成一个字典,并返回该字典。
另一和父级同级的被继承者:
class TG_Stope(TBase):
S_No = models.CharField(max_length=50) # 1 工作面编号 16
S_Name = models.CharField(max_length=255) # 2 工作面名称 12011
S_mc_name = models.CharField(max_length=255) # 3 所在煤层名称 二煤
...
def value_S_input(self, data): # def value_S_input(self, data):这是一个方法(函数),从data字典中提取对应的值,并将这些值赋给TG_Stope对象的属性S_No、S_Name和S_mc_name。这个方法用于将外部数据输入到TG_Stope对象。
self.S_No = data['S_No']
self.S_Name = data['S_Name']
self.S_mc_name = data['S_mc_name']
...
def S_Input(self, Str): # 从一个字符串Str中解析数据(将字符串转换为字典),然后调用value_S_input()方法,将字典中的值赋给TG_Stope对象的属性S_No、S_Name和S_mc_name。
这里面的 def value_S_input(self, data):
可以理解成吸收的技能
综上,
TEXPstopeClass
继承了TBase
和TG_Stope
的方法和属性
类似地,Ex_Guid = TEXPstopeClass()
表示EX_GUID继承了TEXP,即EX_GUID是最新(子)级,上述代码创建了 TG_Stope
类的一个实例,并将其赋值给变量 Ex_Gzm
。现在,TEXPstopeClass
类有两个类属性,Ex_Base
和 Ex_Gzm
,它们分别是 TBase
和 TG_Stope
的实例。
-
对“类的继承”的理解:
在Python中,"类的继承"是面向对象编程的一个重要概念,它允许一个类(称为子类或派生类)从另一个类(称为父类、基类或超类)继承属性和方法。通过继承,子类可以重用父类的代码,并且可以在不修改父类代码的情况下添加自己特有的属性和方法,从而实现代码的重用和扩展。
子类会自动继承父类的所有属性和方法,并且可以通过重写方法或添加新方法来改变或扩展父类的行为。
下面是一个简单的例子来理解Python中的类继承:
pythonCopy code # 定义父类 class Animal: def __init__(self, name): self.name = name # 这个 父类 有一个构造函数`__init__`和一个方法`make_sound` def make_sound(self): print("Some generic sound") # 定义子类,继承了 父类(animal) class Dog(Animal): def make_sound(self): print("Woof!") # 同上 class Cat(Animal): def make_sound(self): print("Meow!") # 对于 “狗” ,用“好孩子”喊他, dog = Dog("GOOD BOY !") # 会输出“汪”,也就是说根据自己的特性重写了`make_sound`方法, dog.make_sound() # Output: Woof ! ~ # 对于 “猫” ,用“乖姑娘”, cat = Cat("CUTE GIRL !") # 还是用了父类make sound的方法,但有自己的特色,“喵” cat.make_sound() # Output: Meow ~ ~
通过继承,我们可以实现代码的重用,因为
Dog
和Cat
类无需重新定义__init__
方法和make_sound
方法,而是直接继承了父类的这些功能。另外,子类还可以添加新的属性和方法,使得代码更具灵活性和可扩展性。继承是面向对象编程中的重要特性,它使得代码的设计更加灵活、可维护和可扩展。但同时,应当谨慎使用继承,避免过度依赖继承关系,以免导致类之间过于紧密耦合,影响代码的可读性和维护性。