Python 扩展类未运行构造函数
我将课堂提交扩展到SmsSubmission。但是,当我打印x.sender时,构造函数没有初始化。我希望Python 扩展类未运行构造函数,python,oop,Python,Oop,我将课堂提交扩展到SmsSubmission。但是,当我打印x.sender时,构造函数没有初始化。我希望测试发送方,但输出是无 这里怎么了 class Submission(): sender = None def __init__(self): self.sender = 'test sender' class SmsSubmission(Submission): message = None def __init__(self):
测试发送方
,但输出是无
这里怎么了
class Submission():
sender = None
def __init__(self):
self.sender = 'test sender'
class SmsSubmission(Submission):
message = None
def __init__(self):
self.message = 'test message'
x = SmsSubmission()
print x.sender
您没有在子类中调用构造函数。您需要显式调用它,可以使用
提交。\uuu init\uuu()
或使用
还要注意,在使用Python 2时,基类应该继承自对象,以确保它是一个新样式的类。
class Submission(object):
sender = None
def __init__(self):
self.sender = 'test sender'
class SmsSubmission(Submission):
message = None
def __init__(self):
Submission.__init__(self) # Calls the Submission constructor
# super(SmsSubmission, self).__init__()
self.message = 'test message'
x = SmsSubmission()
print x.sender
您没有在子类中调用构造函数。您需要显式调用它,可以使用
提交。\uuu init\uuu()
或使用
还要注意,在使用Python 2时,基类应该继承自对象,以确保它是一个新样式的类。
class Submission(object):
sender = None
def __init__(self):
self.sender = 'test sender'
class SmsSubmission(Submission):
message = None
def __init__(self):
Submission.__init__(self) # Calls the Submission constructor
# super(SmsSubmission, self).__init__()
self.message = 'test message'
x = SmsSubmission()
print x.sender
现在试试。我不知道为什么它不能在在线解释器中运行,但我只是用编辑过的版本自己测试了它,它可以工作。现在试试。我不知道为什么它不能在在线解释器中运行,但我只是用编辑过的版本自己测试了一下,它就可以工作了。