gpt4 book ai didi

Python 列表类型声明

转载 作者:行者123 更新时间:2023-12-04 00:53:32 27 4
gpt4 key购买 nike

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

def myString(name:str) -> str:
return "hello " + name
但是,我在列表中遇到了问题。互联网上的许多例子都说使用 列表 ,但出现错误。现在我使用 列表 ,并且没有错误。用这个可以吗?
我发现有人可以使用的另一个问题
def myListString() -> list[str]:
return ["ABC", "CDE"]
我发现错误。
TypeError: 'type' object is not subscriptable
我应该如何纠正这个?
我发现的另一个问题是我无法声明 我的类(class) 我的类(class) .例如,
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' object is not subscriptable


Python 3.9 允许 list[str] .之前您必须导入 List 来自 typing-> List[str] .

NameError: name 'Point' is not defined


如果你想声明“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)会成功的。
另外,如果你想检查 isSamePoint您可能要考虑自己的 __eq__ .

关于Python 列表类型声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64496437/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com