python - 在声明装饰器的文件中导入模块

标签 python decorator

这是我的文件结构:

annotations
    Helper.py
    annotations.py
test
    HelloWorld.py

这是 HelloWorld.py,一个简单的 HelloWorld 类:

from annotations.annotations import annie

class HelloWorld:
    @annie.mydecorate
    def something():
        echo 'Hello World'

annotations.py 中,我只是声明一些简单的装饰器:

from annotations.Helper import Helper

class annie:
    @staticmethod
    def mydecorate(func):
        Helper.prepare()
        print func.__name__

这里我收到一条错误消息:No such module: Helper。我猜这是在加载模块 HelloWorld 时发生的,它正在加载注释模块,但在加载模块期间调用该函数,此时 Helper模块未加载。我不确定我的说法是否正确,但我只是在这里寻找解决方案。

还有其他问题吗?我可以像在声明装饰器的文件中那样导入模块吗?任何帮助将不胜感激。

问候, 罗汉

最佳答案

annotations.py中,尝试:

import Helper

或(相对导入,Python 2.5 及更高版本)

from . import Helper

关于python - 在声明装饰器的文件中导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10887322/

相关文章:

java - 如何检查继承链中是否存在特定的类类型

Python 装饰器? - 有人可以解释一下吗?

python - Pandas:根据跨越所有列的条件有效排除行

python - Scrapy 检索文本编码不正确,希伯来语为\u0d5 等

python - 在多索引上使用切片器

python - PyMC 中的装饰器

python - 仅使用传递的参数子集创建 namedtuple 对象

python - 名称错误 : name 'ReleaseDeal' is not defined in Django

Python求正数的平均值和负数的平均值

javascript - 完美修复 Javascript/Typescript 中的循环依赖问题