我有一个程序,我将在其中使用继承:
class Templates(object):
def __init__(self, esd_user, start_date,
summary, ticket_number, email_type):
self.esd = esd_user
self.strt_day = start_date
self.sum = summary
self.ticket = ticket_number
self.email = email_type
def gather_intel(self):
if self.email == "pend":
PendingEmail(self.esd, self.ticket,
self.strt_day)
elif self.email == "generic":
GenericEmail(self.esd, self.ticket,
self.strt_day)
elif self.email == "resolve":
ResolveEmail(self.esd, self.ticket,
self.strt_day)
elif self.email == "osha":
OshaEmail(self.esd, self.ticket,
self.strt_day)
else:
return False
class PendingEmail(Templates):
pass
class GenericEmail(Templates):
pass
class ResolveEmail(Templates):
pass
class OshaEmail(Templates):
pass
我是否可以使用Templates
类中的__init__
作为其他继承类的__init__
,而不必重写__init__
方法?这里需要打电话给super
吗
例如,这是从主Templates
类继承__init__
函数的正确方法吗
class PendingEmail(Templates):
def __init__(self):
super(Templates, self).__init__()
像任何其他方法一样,类自动从它们的超类继承
__init__
。你想要达到的目标已经发生了如果不需要为子类的
__init__
添加任何内容,只需不实现它,它们就会自动继承它。否则,对于需要进一步初始化的情况,您就有点不合适了:如果不在子类中定义
__init__
方法,基类__init__
仍将被调用。如果您定义了一个,那么您需要显式地调用它,就像您在需要的任何其他操作之前/之后所描述的那样。super的第一个参数是调用它的类相关问题 更多 >
编程相关推荐