0

我有一个基类

class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def title(self):
        return self.name+str(self.age)

我需要对其进行子类化以获取 Employee 类,其中 empid 也是一个属性

class Employee(Person):
    def __init__(self,*args,**kwargs,empid):
        Person.__init__(self, *args)
        self.empid= empid
    def title(self):
        return self.name+str(self.age)+self.empid

例如,假设 Jon 是 empid="001" 的 Employee

j = Employee('Jon',30,'001')
print j.title()

应该给Jon30001

我收到语法错误..我做错了子类化吗?

4

1 回答 1

0

可选参数必须放在方法签名的最后。您的原始帖子中也存在缩进问题,但看起来这是发布时出现的复制/粘贴错误。以下应该更适合您。

[编辑]

class Person(object):
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def title(self):
        return self.name+str(self.age)

class Employee(Person):
    def __init__(self,*args,**kwargs):
        Person.__init__(self, *args)
        self.empid= kwargs.get('empid')
    def title(self):
        return self.name+str(self.age)+self.empid

输出->

>>> j = Employee('Jon',30,empid="001")
>>> j.title()
'Jon30001'
于 2013-03-08T06:03:47.330 回答