【发布时间】:2018-06-08 07:51:44
【问题描述】:
(代码的简短版本)
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 警告我:类“Animal”的未解析属性引用“__name”
代码仍在按预期工作。 为什么会弹出这个警告?
f-strings 对我和they are also faster 来说似乎是 str.format 的更简洁版本。 PS。由于我是 Python 的新手,请随时提出所有时尚错误或可以和应该做得更好的地方:)
Python 版本:3.6.4 PyCharm 社区版本:2017.3.1
【问题讨论】:
-
哦,有趣的是,PyCharm 本身为我提供了对旧代码的“转换为 f 字符串文字”的更正...
-
我认为你在 PyCharm 中发现了一个错误。它可能是由于在属性名称中使用双下划线而被抛弃,这会调用名称修饰。如果您尝试从其他类访问这些,则需要使用损坏的名称。 (在这种情况下,这实际上可能是错误的:
Animal的子类不需要自己的姓名、性别、身高和体重属性。) -
我应该举报吗?
-
我会举报的。在最坏的情况下,他们什么也不做。