Skip to main content
 首页 » 编程设计

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

2025年05月04日18cloudgamer

以下代码来自 Django 的 settings.py。由于 Python 中的所有内容都是对象,为什么不将已安装的应用程序作为对象元组传递:

INSTALLED_APPS = ( 
  django.contrib.auth, 
  django.contrib.contenttypes, 
..... 

他们这样做有什么充分的理由吗:

INSTALLED_APPS = ( 
  'django.contrib.auth', 
  'django.contrib.contenttypes', 
..... 

代替?

我是 Python 和 Django 的新手,所以请不要对我评价太多。

请您参考如下方法:

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