Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 扩展类未运行构造函数_Python_Oop - Fatal编程技术网

Python 扩展类未运行构造函数

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):

我将课堂提交扩展到SmsSubmission。但是,当我打印x.sender时,构造函数没有初始化。我希望
测试发送方
,但输出是

这里怎么了

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

现在试试。我不知道为什么它不能在在线解释器中运行,但我只是用编辑过的版本自己测试了它,它可以工作。现在试试。我不知道为什么它不能在在线解释器中运行,但我只是用编辑过的版本自己测试了一下,它就可以工作了。