python - 是否可以在 init 构造函数之前先调用类的方法?

标签 python

我的类(class):

from django.contrib.admin.views.main import ChangeList
class MyChangeList(ChangeList):
    def __init__(self, *args):
        ...

    def get_query_set(self):
        ...

我在 __init__get_query_set 中添加了日志,我注意到后者的日志输出被打印出来(但 __init__ 中的日志输出没有打印出来) 。这可能吗?

最佳答案

__init__ 函数本身可以调用任意方法,Python 中对象的构造也可能会变得复杂 __new__ ,因此请确保两个输出引用相同的对象(例如,通过在输出中包含 id(self) )。

要找出谁调用了 get_query_set,您可以使用 traceback.print_stack :

import traceback
traceback.print_stack()

关于python - 是否可以在 init 构造函数之前先调用类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7006763/

相关文章:

python - 如何在没有中间音频文件的情况下将 pydub `AudioSegment` 转换为流媒体目的?

python - 在 Python 中以管理员身份编辑文件

python - 如何使用 django-mptt 创建嵌套评论系统

python - 与 `python setup.py install --user` 的结果混淆

Python解密

python - 在没有任何 python 子包的情况下创建 pip 轮

python - 通过 Python API 客户端发送到 BigQuery 时验证查询出现语法错误

Python 制作文件仅在启动时产生 fatal error ?

python - Python in/Library/Frameworks/Python.framework/Versions/3.7/bin/python3 和 in/usr/local/bin/python3 有什么区别

python - Jinja2 解析 JSON 对象,无法从中获取值