Ato*_*tom 8 python testing python-import factory-boy
我是Factory_boy模块的新手。在我的代码中,我import factory然后使用此导入来访问模糊属性,factory.fuzzy然后它抛出 error module 'factory' has no attribute 'fuzzy'。
我通过再次导入解决了这个问题
import factory
from factory import fuzzy
这样做就没有错误。
这是什么原因啊!
小智 6
当您导入Python模块(您的import factory)时,您可以直接访问该模块中声明的内容(例如factory.Factory):该模块中声明的所有符号都会自动导出。
但是,如果嵌套模块未在其父模块中导入,则必须直接导入它。
\n\n在这里,factory.Factory可用,因为factory/__init__.py包含:
from .base import Factory\nRun Code Online (Sandbox Code Playgroud)\n\n=> 当您键入 时,Python 会查找中factory.Factory命名的符号,该符号(根据上面的行)是对中定义的类的引用。Factoryfactory/__init__.pyFactoryfactory/base.py
from . import fuzzy由于in 中没有一行factory/__init__.py,Python 无法以这种方式加载它。
Factory_boy 包中的其他模块依赖于第三方包;\n例如factory.django导入 Django。如果factory/__init__.py包含该from . import django行(需要factory.django从 获得import factory),则运行的每个程序都import factory需要安装 Django。
为了让包的用户决定他们依赖什么,选择尽可能不在包顶层添加这些直接导入 \xe2\x80\x94 这允许未来版本添加外部依赖项而不会破坏现有代码。
\n