在python中使用object.\uuuuu class\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?
使用在python中使用object.\uuuuu class\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?,python,django,python-3.x,Python,Django,Python 3.x,使用对象时是否有任何注意事项?例如,在Django,我曾经这样做: model_object.__class__.objects.all() 我想知道这样是否很好 谢谢。不一定是获取实例的类属性或方法的合理方法。不过,通常有一些更好的内置方式与dunder属性和方法交互——在您的例子中,您可以使用type()来访问。\uuuu类\uuuu,例如type(model\u object)。objects.all()显式优于隐式。只需导入模型类:: from .models import Model
对象时是否有任何注意事项?例如,在Django,我曾经这样做:
model_object.__class__.objects.all()
我想知道这样是否很好
谢谢。不一定<代码>是获取实例的类属性或方法的合理方法。不过,通常有一些更好的内置方式与dunder属性和方法交互——在您的例子中,您可以使用type()
来访问。\uuuu类\uuuu
,例如type(model\u object)。objects.all()
显式优于隐式。只需导入模型类::
from .models import ModelClass
ModelClass.objects.all()
如果您可以确保model\u object
确实是一个模型对象,这很好。这取决于您为什么要执行他的操作model\u object.objects.all()
将以相同的方式工作,只要model\u object
没有一个实例属性objects
会遮挡class属性。@chepner我之所以这样做是为了不必导入类。因为我已经有了目标model\u object.field.\u class\uu.objects.all()
其中field
是指向另一个Django模型的外键字段。“model\u object.objects.all()
将以同样的方式工作。”我错过了这一点。我认为导入cls而不是使用\uu class\uu
@WaketZheng会更好。怎么回事?