PyCharm F-字符串使用(未解决属性引用 '__name' 类...)

(代码短版)PyCharm F-字符串使用(未解决属性引用 '__name' 类...)

class Animal: 

__name = ""

__gender = "unknown"

__height = 0

__weight = 0

__hungry = False

def __init__(self, name, gender, height, weight):

self.__name, self.__gender, self.__height, self.__weight = name, gender, height, weight

def toString(self):

return f'{self.__name} is a {self.__gender}, {self.__height} m tall and weights {self.__weight} kg.'

PyCharm警告我:未解决的属性引用 '__name'对于类“动物”

该代码仍按预期工作。 为什么会弹出此警告?

f-strings对我来说似乎是str.format的更清晰版本,they are also faster。 PS。由于我是新手到Python,请随时带出所有的时尚错误或什么可以和应该做的更好:)

Python版本:3.6.4 PyCharm社区版本:2017年3月1日

Picture of the code and the error

回答:

从大约一年前有this post也this。这似乎可能是PyCharm的一个问题。

但是,如果您删除f字符串中的双下划线,则linter不会再抱怨。

使用dunder前缀属性调用''.format()似乎也不会产生错误或警告。

正如@kindall上面所述,prefixing with the double underscore调用名称修改。

class Animal: 

__X = 'y'

def __init__(self, name="", gender="", height=0, weight=0, hungry=False):

self.name = name

self.gender = gender

self.height = height

self.weight = weight

self.hungry = hungry

def to_string(self):

return f'{self.name} is a {self.gender}, {self.height} m tall and weights {self.weight} kg.'

def to_string_format(self):

return '{}'.format(self.__X)

另外they似乎知道有关此问题的错误。我会提起它;这对他们获得更多信息会有好处。

以上是 PyCharm F-字符串使用(未解决属性引用 '__name' 类...) 的全部内容, 来源链接: utcz.com/qa/266543.html

回到顶部