我正在尝试通过 OOP 进行继承。我使用 self.level = self.level+1 是一个函数,但结果只是初始值。代码是:
class employee():
company = "visa"
ecode = 120
class freelancer():
company = "fiverr"
level = 2
def upgradelevel(self):
self.level = self.level + 1
class programmer(employee, freelancer):
name = "rohit"
p = programmer()
k = freelancer()
p.upgradelevel
print(p.level)
我在upgradelevel函数中使用了+1,但当我最后打印p.level时,它只给了我值2。为什么 self.level = self.level +1 没有运行。我希望通过使用升级功能来增加价值
也许您已经习惯了 Java,但这不是 Python 中声明实例属性的方式。您需要在
self.level = ...
方法(构造函数)中使用 __init__
来声明实例属性。否则,您将声明静态类属性。
您还需要一些脚手架来支持您的多重继承:
class employee():
def __init__(self):
super(employee, self).__init__()
self.company = "visa"
self.ecode = 120
class freelancer():
def __init__(self):
super(freelancer, self).__init__()
self.company = "fiverr"
self.level = 2
def upgradelevel(self):
self.level = self.level + 1
class programmer(employee, freelancer):
def __init__(self):
super(programmer, self).__init__()
self.name = "rohit"
p = programmer()
k = freelancer()
p.upgradelevel
print(p.level)