有没有办法消除警告:
未解决的引用'DeviceManager'...
对于这种单例模式?
class DeviceManager:
""" Holds all devices and manages their distributed use. """
instance: Union[DeviceManager, None] = None # warning Unresolved reference 'DeviceManager'
@staticmethod
def get_instance() -> DeviceManager: # warning Unresolved reference 'DeviceManager'
""" Singleton instance. """
if DeviceManager.instance is None:
DeviceManager()
return cast(DeviceManager, DeviceManager.instance)
def __init__(self) -> None:
""" Create instance. """
if DeviceManager.instance is None:
DeviceManager.instance = self
else:
raise Exception("This class is a singleton!")
截图:
对于Python3.7的早期版本,还有一种方法。要避免出现警告,只需提供如下字符串类型:
class DeviceManager:
""" Holds all devices and manages their distributed use. """
instance: Union['DeviceManager', None] = None
@staticmethod
def get_instance() -> 'DeviceManager':
""" Singleton instance. """
if DeviceManager.instance is None:
DeviceManager()
return cast(DeviceManager, DeviceManager.instance)
def __init__(self) -> None:
""" Create instance. """
if DeviceManager.instance is None:
DeviceManager.instance = self
else:
raise Exception("This class is a singleton!")
资料来源:https://www.pythonsheets.com/notes/python-future.html
是的,如果您使用的是Python
问题是,在创建类时,它不存在,因此您的类型注释指向一些不存在的东西。
为了解决这个问题,您可以使用__future__导入注释中的,它将此类注释的计算推迟到类创建之后。
详见PEP 563。
有没有办法在类中定义参数的类型,以便该类型引用自身? 例如,以下内容不会运行: 错误:
我实现了一个这样的树 但是在 PyCharm 中,我得到有解决方法吗?
我有Python类,它们有彼此作为属性的实例 如果这些类是在同一个文件中定义的,那么这很好,但是在我的例子中,它们都非常大,我希望将它们移动到不同的文件中。但是,如果我这样做,我必须将导入和导入,这将导致循环导入错误。有人知道我可以使用哪种模式将和放在不同的文件中,保持类型暗示,并遇到循环导入错误吗?
我遇到了一个错误 导入语句如下所示 Kotlin版本:1.1.51 提前致谢:)
我正在Android Studio中尝试Kotlin和Kotlin Android扩展。我在Ubuntu 14.04上的Android Studio v1.5.1和OS X El Capitan上的Android Studio v1.5.1中都进行了尝试,得到了相同的结果。 下面是我正在做的事情: null 然后进入生成的content_main.xml文件,并为“hello World!”添加一
以下内容产生了。我怎样才能解决它?