我不知道这是否真的是一个技术问题,但可能更多是关于良好实践的问题。
假设您编写了一个具有多个函数的模块,这些函数与matplotlib的Figure对象一起使用。函数将fig对象作为参数并返回此fig对象。例如:
def do_smth(fig, args):
""" do something on fig"""
fig.suptitle("plop")
# more stuff
return fig
上述功能不需要导入matplotlib模块。
我遇到了麻烦。是否可以编写一个完整的模块,其中的函数可以处理来自另一个模块的对象,而无需导入该模块?在文档中提到这个就足够了吗?关于这种情况有什么建议吗?在课程中我得到了这种情况,因为模块的感觉是错误的?
答案 0 :(得分:0)
如果希望模块使用其他模块中的对象,我会说为了清楚起见,你应该导入其他模块。
毕竟,Python缓存导入。如果已导入其他模块,则尝试再次导入该模块无需任何费用。如果还没有导入另一个模块...这个模块,或者至少是与另一个模块一起使用的函数,几乎没用(因为你不能让其他模块的对象通过这个中的功能。)
额外的导入纯粹是为了清晰起见 - 但确实提供了很多清晰度。如果有人正在检查要求,那么文档字符串中的一行可能比导入中的一行更容易错过。如果你没有包含导入,并且有人在没有其他可用的情况下导入你的模块(误解了你的目的),它会加载正常 - 但是可能会做一些他们并不期望的事情,如果他们称这些功能。如果您确实包含导入,并且他们尝试导入您的模块而不提供其他模块,那么他们最终会出现错误,以便了解您的模块的用途。