相关疑难解决方法(0)

Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'

我有以下基类和子类:

class Event(object):
    def __init__(self, sr1=None, foobar=None):
        self.sr1 = sr1
        self.foobar = foobar
        self.state = STATE_NON_EVENT

# Event class wrappers to provide syntatic sugar
class TypeTwoEvent(Event):
    def __init__(self, level=None):
        self.sr1 = level
        self.state = STATE_EVENT_TWO
Run Code Online (Sandbox Code Playgroud)

在我的代码中,我正在检查TypeTwoEvent类的实例,检查我知道在基类中存在的字段 - 我希望它默认值为None.但是,我的代码引发了以下异常:

AttributeError:'TypeTwoEvent'对象没有属性'foobar'

我的印象是基类字段将由子类继承,并且创建子类的实例将实例化基类(从而调用其构造函数)...

我在这里失踪了什么?为什么TypeTwoEvent没有一个None属性-当其所来源的基本类有一个TypeTwoEvent属性?

python inheritance class-attributes

20
推荐指数
1
解决办法
3万
查看次数

Python类继承问题

我正在使用Python类继承并遇到一个问题,__init__如果从子类(下面的代码)调用继承没有执行,我从Active Python得到的结果是:


>>> start
Tom Sneed
Sue Ann
Traceback (most recent call last):
  File "C:\Python26\Lib\site-packages\pythonwin\pywin\framework\scriptutils.py", line 312, <br>in RunScript
    exec codeObject in __main__.__dict__
  File "C:\temp\classtest.py", line 22, in <module>
    print y.get_emp()
  File "C:\temp\classtest.py", line 16, in get_emp
    return self.FirstName + ' ' + 'abc'
AttributeError: Employee instance has no attribute 'FirstName'
Run Code Online (Sandbox Code Playgroud)

这是代码

class Person():
    AnotherName = 'Sue Ann'
    def __init__(self):
        self.FirstName = 'Tom'
        self.LastName = 'Sneed'

    def get_name(self):
        return self.FirstName + ' ' + self.LastName

class Employee(Person):
    def …
Run Code Online (Sandbox Code Playgroud)

python inheritance class

16
推荐指数
3
解决办法
2万
查看次数

标签 统计

inheritance ×2

python ×2

class ×1

class-attributes ×1