2 回答

TA贡献1765条经验 获得超5个赞
诸如您编写的方法称为“实例方法”。
self,接收者,应该是一个实例TestClass(否则,许多事情可能会出错,例如super)。
您可以定义get_keys为静态方法,或使用简单函数(不将其放入类中)。
class TestClass:
@staticmethod
def get_keys(s):
return list(s.keys())
您可能需要阅读有关类的 Python 文档以获取更多详细信息。

TA贡献1785条经验 获得超4个赞
为了具体回答您关于 Pycharm 警告的问题,您当前遇到的警告是由 Pycharm 检查代码中的类型引起的已知问题,因为 PyCharm 很困惑,因为它需要一个 TestClass 对象,但得到一个字典对象。
解决此问题的一种方法是禁用该特定警告类型,如从此处解释的那样
转到设置/首选项
在边栏中,单击检查
展开 Python 选项卡
向下滚动
Incorrect Call Arguments
并取消选中它如果这不起作用,您可以取消选中
Type Checker
。
另一个更优雅的方法,虽然我不确定它是否会解决这个 PyCharm 警告,但是在你的函数中添加一个装饰器,让 PyCharm 知道你的返回类型是一个字典。教程在这里,但您的文档字符串可能会包含以下内容:
""" :rtype: Dict [str,int] """
顺便说一句,您可能应该在 get_keys 函数上使用@staticmethod
装饰器,正如 Jean 所提到的,因为它接收一个对象并返回其键(并且我们不希望该对象在此过程中访问我们的 TestClass 数据)。
添加回答
举报