python 当使用属性时,这个setter错误(“X”未定义...)是什么?

yrdbyhpb  于 12个月前  发布在  Python
关注(0)|答案(3)|浏览(195)
@property
def GetURLLabel(self):
    return self._URLLabel

# Setter methods
@URLLabel.setter
def SetURLLabel(self, value):
    if isinstance(value, str):
        self._URLLabel = value
    else:
        raise ValueError("Must be a string")

我得到的错误:

"URLLabel" is not defined
PylancereportUndefinedVariable
(function) URLLabel: Any

下面是目标代码:

class SSLSite:
    def __init__(self, URLLabel, x, x, ...):
        self._URLLabel = URLLabel

我正在设置属性的值,URLLabel就是其中之一。

6yt4nkrj

6yt4nkrj1#

你有三个不同的名字:

  • GetURLLabel作为getter方法的名称
  • SetURLLabel作为setter方法的名称
  • setter方法的装饰器中的URLLabel

所有名称必须相同。如果希望属性的名称为URLLabel,则必须定义两个名为URLLabel的方法,第一个用@property修饰,第二个用@URLLabel.setter修饰。

wf82jlnq

wf82jlnq2#

正如你在这里看到的,你需要在setter之前声明@property。试着这样做:

class SSLSite:
    def __init__(self, URLLabel, x, y):
        self._URLLabel = URLLabel

    @property
    def URLLabel(self):
        return self._URLLabel

    @URLLabel.setter
    def URLLabel(self, value):
        if isinstance(value, str):
            self._URLLabel = value
        else:
            raise ValueError("Must be a string")
yvfmudvl

yvfmudvl3#

我相信我的问题是我使用了方法名“GetURLLabel”。一旦我删除了Get from方法名称,它就工作得很好。谢谢大家!感谢你的回答,朋友们!

相关问题