Python列表类型声明

Python列表类型声明,python,Python,我试图在函数中设置变量类型。当我尝试使用普通变量类型时,没有问题。比如说, def myString(name:str) -> str: return "hello " + name class Point: def __init__(self, x:int, y:int): self.x:int = x self.y:int = y def isSamePoint(self, p:Point) -> b

我试图在函数中设置变量类型。当我尝试使用普通变量类型时,没有问题。比如说,

def myString(name:str) -> str:
    return "hello " + name
class Point:
    def __init__(self, x:int, y:int):
        self.x:int = x
        self.y:int = y

    def isSamePoint(self, p:Point) -> bool:
        return ((self.x==p.x) and (self.y==p.y))
p0 = Point(10, 5)
p1 = Point(5, 5)
p0.isSamePoint(p1)
然而,我在列表中遇到了问题。互联网上的许多例子都说使用列表,但都有错误。现在我使用列表,没有错误。用这个可以吗

另一个我发现有人可以使用的问题

def myListString() -> list[str]:
    return ["ABC", "CDE"]
我发现了错误

TypeError: 'type' object is not subscriptable
我应该如何纠正这个问题

我发现的另一个问题是我不能在myClass中声明myClass。比如说,

def myString(name:str) -> str:
    return "hello " + name
class Point:
    def __init__(self, x:int, y:int):
        self.x:int = x
        self.y:int = y

    def isSamePoint(self, p:Point) -> bool:
        return ((self.x==p.x) and (self.y==p.y))
p0 = Point(10, 5)
p1 = Point(5, 5)
p0.isSamePoint(p1)
我发现了错误

def isSamePoint(self, p:Point):
NameError: name 'Point' is not defined
请帮我解决这个问题

TypeError:“type”对象不可下标

Python3.9允许
list[str]
。之前,您必须从
输入
,然后执行
->List[str]

NameError:未定义名称“点”

如果要声明“self”的类型,可以将其放入字符串
def isSamePoint(self,p:“Point”)->bool:
或创建一个接口

>>> class A: pass
>>> class B(A): pass
>>> b = B()
>>> isinstance(b, A)
True
因此,
def-isSamePoint(self,p:A)
就可以了


此外,如果您想检查<代码> SAMEPOSTEP/COD> >,您可能需要考虑自己的代码<>代码> >代码> < /p>您使用的是什么Python版本?