class Employee: # 创建Employee雇员类
id = 1000 # 在类属性中设置默认其实id为1000
def __init__(self, name, salary): # 构建包含实例name、salary属性得构造方法
self.name = name
self.__salary = salary # 给实例属性赋初值
self.id += 1 # 每调用依次构造方法雇员得id就增加1
def __add__(self, other): # 重新定义+方法
sum_salary = self.__salary + other.__salary # 在+方法中计算薪水和
return sum_salary # 返回薪水和
@property
def salary(self):
return self.__salary
@salary.setter
def salary(self, salary):
if 1000 < salary < 50000:
self.__salary = salary
else:
print("输入错误,请重新输入1000-50000之间的数")
e1 = Employee("小余", 2000)
e2 = Employee("小黄", 20000)
sum = e1+e2
print(sum)
这段代码运行没有问题,但是当我把salary变成非私有实例属性,代码如下,就出问题
class Employee: # 创建Employee雇员类
id = 1000 # 在类属性中设置默认其实id为1000
def __init__(self, name, salary): # 构建包含实例name、salary属性得构造方法
self.name = name
self.salary = salary # 给实例属性赋初值
self.id += 1 # 每调用依次构造方法雇员得id就增加1
def __add__(self, other): # 重新定义+方法
sum_salary = self.salary + other.salary # 在+方法中计算薪水和
return sum_salary # 返回薪水和
@property
def salary(self):
return self.salary
@salary.setter
def salary(self, salary):
if 1000 < salary < 50000:
self.salary = salary
else:
print("输入错误,请重新输入1000-50000之间的数")
e1 = Employee("小余", 2000)
e2 = Employee("小黄", 20000)
sum = e1+e2
print(sum)
这是为啥