Class继承python
Class inheritance python
以创建模型为例
class学生(models.Model)
name=models.charfield(),roll=models.integerfield()
同样,
在创建表单的情况下,class newform(forms.Form)
name=forms.charfield(),roll=forms.integerfield()
同样,
在创建序列化程序的情况下,class serial(serializers.Serializer)
name=serializers.charfield(),roll=serializers.integerfield()
我知道在每个 classes 中,继承了一个基础 class 但我很困惑,如果在 class 中创建不同 classes 的不同对象] 在每种情况下,继承 models.model、forms.Form、serializers.Serializer 的含义是什么?这些继承的 class 是做什么的?
通过继承其他 类,您可以访问他们的方法;
Class A(object):
def _print(self):
print('Class A')
Class B(A):
def other_print(self):
print('Class B')
if __name__ == "__main__":
a, b = A(), B()
a._print()
b._print()
b.other_print()
当从模型、表单等继承时...您从一个已经集成在框架中的对象继承,因此具有与框架一起工作的特定方法。例如模型将被注册到数据库,表单 'knows' 如何正确渲染等等...
当您继承这些 类 时,您已经拥有一个包含所有这些方法的预构建对象。
Django 使用继承和对象组合,这些都是 OOP 技术以实现可重用性。
让我们以您的第一个 class 为例(为简单起见,我只保留了一个字段):
Student(models.Model):
name = models.CharField(max_length=100)
第一行 Student(model.Model):
通过从 Model
class 继承来实现继承,您可以使用它来获得 save()
、delete()
、[=15 等方法=] e.t.c。现在您的 Student
class 可以重复使用这些方法。
第二行 name = models.CharField(max_length=100)
通过创建对象即 class CharField
的 name
来进行对象组合,使用它可以得到 check
、get_internal_type
e.t.c.
所有这些内置 classes (Model
, CharField
e.t.c) 都在文件中定义,即 models.py
所以当你做 models.Model
你从文件 models.py
得到 Model
class 而 models.CharField
从同一个文件得到 CharField
class。
以创建模型为例
class学生(models.Model)
name=models.charfield(),roll=models.integerfield()
同样, 在创建表单的情况下,class newform(forms.Form) name=forms.charfield(),roll=forms.integerfield()
同样, 在创建序列化程序的情况下,class serial(serializers.Serializer) name=serializers.charfield(),roll=serializers.integerfield()
我知道在每个 classes 中,继承了一个基础 class 但我很困惑,如果在 class 中创建不同 classes 的不同对象] 在每种情况下,继承 models.model、forms.Form、serializers.Serializer 的含义是什么?这些继承的 class 是做什么的?
通过继承其他 类,您可以访问他们的方法;
Class A(object):
def _print(self):
print('Class A')
Class B(A):
def other_print(self):
print('Class B')
if __name__ == "__main__":
a, b = A(), B()
a._print()
b._print()
b.other_print()
当从模型、表单等继承时...您从一个已经集成在框架中的对象继承,因此具有与框架一起工作的特定方法。例如模型将被注册到数据库,表单 'knows' 如何正确渲染等等...
当您继承这些 类 时,您已经拥有一个包含所有这些方法的预构建对象。
Django 使用继承和对象组合,这些都是 OOP 技术以实现可重用性。
让我们以您的第一个 class 为例(为简单起见,我只保留了一个字段):
Student(models.Model):
name = models.CharField(max_length=100)
第一行 Student(model.Model):
通过从 Model
class 继承来实现继承,您可以使用它来获得 save()
、delete()
、[=15 等方法=] e.t.c。现在您的 Student
class 可以重复使用这些方法。
第二行 name = models.CharField(max_length=100)
通过创建对象即 class CharField
的 name
来进行对象组合,使用它可以得到 check
、get_internal_type
e.t.c.
所有这些内置 classes (Model
, CharField
e.t.c) 都在文件中定义,即 models.py
所以当你做 models.Model
你从文件 models.py
得到 Model
class 而 models.CharField
从同一个文件得到 CharField
class。