gpt4 book ai didi

Python参数注解未解析引用

转载 作者:太空狗 更新时间:2023-10-29 20:50:54 26 4
gpt4 key购买 nike

为什么提示找不到我的类(class)?为什么我应该创建另一个具有相同名称的类以使其不提示?

from typing import Dict


class WeekDay:

def __init__(self, day_number, day_name):
self.day_name = day_name
self.day_number = day_number

@staticmethod
def get_week_days() -> Dict[str, WeekDay]: # WeekDay unresolved reference error
weekdays = {
"monday": WeekDay(1, "Monday"),
"tuesday": WeekDay(2, "Tuesday"),
"wednesday": WeekDay(3, "Wednesday"),
"thursday": WeekDay(4, "Thursday"),
"friday": WeekDay(5, "Friday"),
"saturday": WeekDay(6, "Saturday"),
"sunday": WeekDay(7, "Sunday")
}
return weekdays

最佳答案

来自文档 ( Section Forward references )

When a type hint contains names that have not been defined yet, that definition may be expressed as a string literal, to be resolved later.

A situation where this occurs commonly is the definition of a container class, where the class being defined occurs in the signature of some of the methods.

所以为了解决这个问题,只需将类型用引号括起来,如下所示:

from typing import Dict


class WeekDay:
def __init__(self, day_number, day_name):
self.day_name = day_name
self.day_number = day_number

@staticmethod
def get_week_days() -> Dict[str, 'WeekDay']: # quote WeekDay
weekdays = {
"monday": WeekDay(1, "Monday"),
"tuesday": WeekDay(2, "Tuesday"),
"wednesday": WeekDay(3, "Wednesday"),
"thursday": WeekDay(4, "Thursday"),
"friday": WeekDay(5, "Friday"),
"saturday": WeekDay(6, "Saturday"),
"sunday": WeekDay(7, "Sunday")
}

return weekdays

关于Python参数注解未解析引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49392845/

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