提问人:user21113865 提问时间:5/3/2023 更新时间:5/3/2023 访问量:22
你能强制从 bass 类派生类在 python 中定义特定的成员变量吗?
Can you force derived class from a bass class to define specific member variables in python?
问:
如果我有一个班级,请说:
class BaseClassOnly():
def __init__(self):
self._foo = None
def do_stuff(self):
print("doing stuff with foo" + self._foo)
我想强制所有从 BaseClassOnly 派生的类为“self._foo”提供一个值,以便继承的函数 do_stuff() 能够使用它。有没有办法确保如果从 BaseClassOnly 继承的类在 init() 中未设置变量 self._foo 会导致错误?
答:
0赞
Barmar
5/3/2023
#1
如果假设子类将调用基类的 ,则可以使用 来检查。__init__()
hasattr()
class BaseClassOnly():
def __init__(self):
if not hasattr(self, '_foo'):
raise ValueError('self._foo must be defined')
评论
__init__
property