1
环境: django-1.8.2   pycharm-community-4.5.1-1

前言

终于打算用所学的python写点东西了,索性就拿django来做一点事。依样画瓢,但是还是很多不解,就摸索着调试,渐进学习

起因

我是看到被解放的姜戈02 庄园疑云中这段代码出现疑惑的:

class Character(models.Model):
    staff_list = Character.objects.all()
    staff_str  = map(str, staff_list)

疑问

staff_list这是个什么对象,类型是什么

尝试

我是想先查objects的,Character类没有objects这个属性,那就是继承于父类了,但是我查看了半天,那一大堆继承关系,我愣是一下没找到....所以就另辟蹊径了

调试

借助pycharm工具,轻松调试得到结果

首先配置好调试环境

图片描述

设置断点,开始调试

图片描述

看到调试结果

图片描述

这里得到list的类型:QuerySet。python中是没有这个类型的,应该是django自身封装的一个类型.点到扩展包,在django下搜索

图片描述

这是我们就查到了QuerySet,看其源代码,是继承自object,实现了iterator 方法,所以能被后面的map函数调用


mugbya
1.2k 声望41 粉丝

时间永远分岔,通往无数未来