Loading

类变量与实例变量

一、类变量(如这里的各个以类名直接引用的变量)
共享性:类变量在类的所有实例之间共享。无论创建多少个APIView的实例,它们都访问相同的类变量值。
作用域:在类的层面定义,整个类以及类的所有实例都可以访问。
修改影响:如果在一个地方修改了类变量的值,所有实例以及后续创建的实例都会受到影响。

class APIView(View):
    # 类变量
    renderer_classes = api_settings.DEFAULT_RENDERER_CLASSES
    parser_classes = api_settings.DEFAULT_PARSER_CLASSES
    authentication_classes = api_settings.DEFAULT_AUTHENTICATION_CLASSES
    throttle_classes = api_settings.DEFAULT_THROTTLE_CLASSES
    permission_classes = api_settings.DEFAULT_PERMISSION_CLASSES
    content_negotiation_class = api_settings.DEFAULT_CONTENT_NEGOTIATION_CLASS
    metadata_class = api_settings.DEFAULT_METADATA_CLASS

二、实例变量(使用self.定义)
独立性:每个实例都有自己独立的实例变量副本。不同的实例可以有不同的值。
作用域:属于特定的实例,只能通过该实例访问。
修改影响:修改一个实例的实例变量不会影响其他实例的实例变量。

posted @ 2024-11-23 20:10  一只大学生  阅读(5)  评论(0编辑  收藏  举报