我正在使用Visual Studio运行py文件。我是OOP新手,所以调试这个问题很困难。它表示名称“mng”未定义,“Manager”对象没有属性“salary”。我应该如何解决这个问题
class Employee:
MIN_SALARY = 30000
def __init__(self, name, salary=MIN_SALARY):
self.name = name
if self.salary >= Employee.MIN_SALARY:
self.salary = Employee.salary
else:
self.salary = Employee.MIN_SALARY
def give_raise(self, amount):
self.salary += amount
class Manager(Employee):
def display(self):
return print("Manager", self.name)
mng = Manager("Debbie Lashko", 86500)
print(mng.name)
mng.display()
>>> mng = Manager("Debbie Lashko", 86500)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 5, in __init__
AttributeError: 'Manager' object has no attribute 'salary'
>>> print(mng.name)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'mng' is not defined
>>> mng.display()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'mng' is not defined
这段代码有一些问题。 但是,您的错误可以通过以下方法解决:
self.salary
在比较之前未声明。所以,经理还没有self.salary
。在if语句中只使用salary
在使用属性之前,必须将某些内容分配给属性。只要稍微改变一下你的逻辑
或者您可以使用conditional expression
相关问题 更多 >
编程相关推荐