Python3使用当前类进行返回注解NameError
程序员文章站
2022-04-09 23:44:16
背景在python>=3.5的版本中加入了对函数声明的注解,可以用冒号:和箭头->对函数的入参和出参的类型进行注解,提高代码的可阅读性。问题在声明MyClass类的时候,其中一个入参_next的类型是该类本身的类型MyClass,如果直接按照下文中的写法,在调用时会报错。class MyClass(object): def __init__(self, number: int, content: str, _next: List[MyClass]) -> Non...
背景
在python>=3.5的版本中加入了对函数声明的注解,可以用冒号:
和箭头->
对函数的入参和出参的类型进行注解,提高代码的可阅读性。
问题
在声明MyClass
类的时候,其中一个入参_next
的类型是该类本身的类型MyClass
,如果直接按照下文中的写法,在调用时会报错。
class MyClass(object):
def __init__(self, number: int, content: str,
_next: List[MyClass]) -> None:
self.number = number
self.content = content
self._next = _next
调用时报错NameError: name 'Section' is not defined
解决方案
将_next: List[MyClass]
中的MyClass
修改为'MyClass'
即整体代码改为
class MyClass(object):
def __init__(self, number: int, content: str,
_next: List['MyClass']) -> None:
self.number = number
self.content = content
self._next = _next
调用时可正常运行,不再报错
本文地址:https://blog.csdn.net/weixin_48629601/article/details/107186657