[英]How to extend a list from a method of inherited class
我有两个类:BaseClass 和 Antifraud,它是从 BaseClass 派生的。 BaseClass 中有一个方法有一个列表,如下所示:
class BaseClass:
def __init__(self):
pass
def create_metrics(self):
self.metrics_list = ['score',
'precision',
'recall']
我希望当我实例化 Antifraud 类时,列表self.metrics_list
将与之前相同,加上'f1'
。 我尝试了以下方法:
class Antifraud(BaseClass):
def __init__(self):
super().__init__()
self.metrics_list.extend(['f1'])
a = Antifraud()
但我收到错误:
AttributeError: 'Antifraud' object has no attribute 'metrics_list'
我该如何解决我的问题? 甚至有可能实现吗? 谢谢
你可以调用create_metrics
方法之前延长self.metrics_list
,通过调用第一create_metrics
要创建self.metrics_list
:
class Antifraud(BaseClass):
def __init__(self):
super().__init__()
self.create_metrics()
self.metrics_list.extend(['f1'])
print(Antifraud().metrics_list)
输出:
['score', 'precision', 'recall', 'f1']
在__init__
之外不初始化实例的属性可以被认为是一种不好的做法
您可以将BaseClass
更新为
class BaseClass:
def __init__(self):
self.metrics_list = ['score', 'precision', 'recall']
然后您的AntiFraud
课程将起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.