一些容易搞混的问题

可变和不可变数据类型

基本数据类型都是不可变数据类型 数字,字符串,布尔值+(元祖)
数据结构(容器)都是可变数据类型 列表,字典,集合

不同下划线变量的含义

_单下划线开头:弱“内部使用”标识,如:”from M import *”,将不导入所有以下划线开头的对象,包括包、模块、成员
__双下划线开头:模块内的成员,表示私有成员,外部无法直接调用
__双下划线开头双下划线结尾__:指那些包含在用户无法控制的命名空间中的“魔术”对象或属性,如类成员的__name__等。

面向对象若干

super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。

Python内置的@ property装饰器就是负责把一个方法变成属性调用

getattr(obj,"name") = obj.name

django URL 问题

url:路径斜杠问题
  当加/的时候,是从根目录拼接(从settings配置的路径出发也加/)
  当没有加/的时候,是从当前路径拼接

rest_framework视图继承

from django.views import View

from rest_framework.views import APIView
from rest_framework.viewsets.generics import GenericAPIView
# 路由:CourseView.as_view(), 自动触发get/post/delete等方法

from rest_framework.viewsets import GenericViewSet
from rest_framework.viewsets import ModelViewSet
# 路由:CourseView.as_view({'get':'list',...}), 自动触发get/post/delete等方法

猜你喜欢

转载自www.cnblogs.com/iyouyue/p/8948269.html