为什么传递表示对象的字符串而不是传递对象?

Nem*_*den 1 python django object

下面的代码是从Djangosettings.py.由于所有内容Python都是对象,为什么不将已安装的应用程序作为对象元组传递:

INSTALLED_APPS = (
  django.contrib.auth,
  django.contrib.contenttypes,
.....
Run Code Online (Sandbox Code Playgroud)

是否有一些强有力的理由为什么他们这样做:

INSTALLED_APPS = (
  'django.contrib.auth',
  'django.contrib.contenttypes',
.....
Run Code Online (Sandbox Code Playgroud)

代替?

我是新来的PythonDjango,所以不要对我做出判断太多,请.

Ale*_*dev 6

将模块或类名称作为字符串传递是避免循环导入错误的典型解决方案.
例如,如果设置文件包含import myapp.models且myapp.models包含,from django.conf import settings则会导致循环导入.