类变量与实例变量
一、类变量(如这里的各个以类名直接引用的变量)
共享性:类变量在类的所有实例之间共享。无论创建多少个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.定义)
独立性:每个实例都有自己独立的实例变量副本。不同的实例可以有不同的值。
作用域:属于特定的实例,只能通过该实例访问。
修改影响:修改一个实例的实例变量不会影响其他实例的实例变量。