今天碰到个很奇怪的问题,如果用如下的代码
from common.rpc.message.messager import MesssageClient
就会报如下错误:
ImportError: cannot import name 'MesssageClient' from 'common.rpc.message.messager'
但是呢,改成如下代码就不会有问题
from common.rpc.message import message
messager.xxxx()
仔细研究了下,发现是两个文件彼此互相引用了,成环了,导致其报错。
解决方法也很简单,把
from common.rpc.message.messager import MesssageClient
放到对应所使用的函数中即可搞定问题。
原理就是,不让彼此引用的他们 同时 被引用就可以了~
A -> B -> A,这种模式肯定会报错
但A -> B, B -> A(即A引用B,B不同时引用A即可解决问题)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。