Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用object.\uuuuu class\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu?_Python_Django_Python 3.x - Fatal编程技术网

在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会更好。怎么回事?