我正在使用Python abc
包声明抽象类。当我定义一个抽象方法时,我应该返回一个与预期类型相同的空对象还是简单地pass
?
MWE:
import abc
class A(abc.ABC):
@abc.abstractmethod
def method_1(self):
"""
This abstract method should return a list
"""
pass
def method_2(self):
list_output_method_1 = self.method_1()
for x in list_output_method_1:
pass
这样做,PyCharm在method_2
中警告我有关不可迭代的list_output_method_1
。
我应该将return []
放在method_1
中吗?
答案 0 :(得分:1)
您可以通过将返回类型设置为list来在method1中更新文档字符串。
import abc
class A(abc.ABC):
@abc.abstractmethod
def method_1(self):
"""
This abstract method should return a list
:rtype: list
"""
pass
def method_2(self):
list_output_method_1 = self.method_1()
for x in list_output_method_1:
pass